2

我对所有 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 -l info -A proj

它只显示来自 的任务app_tasks_found,但不显示来自app_cant_find_tasks

当然,当我尝试调用任务时,芹菜会引发错误app_cant_find_tasks.tasks.test_task.delay()

app_cant_find_tasks如果我明确设置,Celery 可以从中找到任务CELERY_IMPORTS = ("proj.app_cant_find_tasks.tasks",)

这些应用程序对我来说完全相似。我不明白为什么 celery 只能从一个应用程序自动发现任务。问题是,我应该在哪里解决我的问题?

4

1 回答 1

2

我有一个类似的问题,就我而言,问题是我在其中一个应用程序中丢失了init .py 文件。

于 2017-06-26T15:05:53.840 回答