【发布时间】:2016-11-11 17:14:49
【问题描述】:
我对所有 y 应用程序的自动发现任务都有疑问。
对于项目
proj
|-- settings.py
|-- app_tasks_found
| |-- tasks.py
|
|-- app_cant_find_tasks
| |-- tasks.py
以及以下设置
INSTALLED_APPS = [
'proj.app_tasks_found',
'proj.app_cant_find_tasks',
]
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')
from django.conf import settings
app = Celery('proj')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
在我开始 celery worker 之后
celery worker -l info -A proj
它只显示来自app_tasks_found 的任务,而不是来自app_cant_find_tasks 的任务
当我尝试调用任务 app_cant_find_tasks.tasks.test_task.delay() 时,当然 celery 会引发错误
如果我明确设置CELERY_IMPORTS = ("proj.app_cant_find_tasks.tasks",),Celery 可以从app_cant_find_tasks 找到任务
这些应用对我来说完全相似。我不明白为什么 celery 只能从一个应用程序自动发现任务。 问题是,我应该从哪里解决我的问题?
【问题讨论】:
标签: django celery autodiscovery