gpt4 book ai didi

python - Celery autodiscover_tasks 不适用于所有 Django 1.7 应用程序

转载 作者:太空狗 更新时间:2023-10-29 17:40:47 27 4
gpt4 key购买 nike

我有一个 Django 1.7 项目和 Celery 3.1。我的 Django 项目中的所有应用程序都使用新的 AppConfig。问题是并不是所有的任务都可以通过 autodiscover_tasks 找到:

app.autodiscover_tasks(settings.INSTALLED_APPS)

如果我像这样使用 autodiscover_tasks 它将起作用:

app.autodiscover_tasks(settings.INSTALLED_APPS + ('apps.core','apps.sales'))

找到网站中定义的任务,但找不到核心和销售中的任务。所有的布局都与 apps.pytasks.py 相同。

项目文件夹结构为:

apps
core
apps.py
tasks.py
dashboard
apps.py
sales
apps.py
tasks.py
websites
apps.py
tasks.py

类定义如下:

class WebsitesConfig(AppConfig):
name = 'apps.websites'
verbose_name = 'Websites'

class SalesConfig(AppConfig):
name = 'apps.sales'
verbose_name = 'Sales'

最佳答案

这在许多 Celery 问题中都有讨论,例如 #2596#2597 .

如果您使用的是 Celery 3.x,修复方法是使用:

from django.apps import apps
app.autodiscover_tasks(lambda: [n.name for n in apps.get_app_configs()])

#3341 中所述,如果您使用的是 Celery 4.x(即将发布),您可以使用:

app.autodiscover_tasks()

关于python - Celery autodiscover_tasks 不适用于所有 Django 1.7 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28628868/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com