我有一个Django 1.7项目和芹菜3.1。我的Django项目中的所有应用程序都使用新的AppConfig。问题是并非所有的任务都是通过autodiscover_tasks
找到的:
app.autodiscover_tasks(settings.INSTALLED_APPS)
如果我使用这样的自动发现任务,它将起作用:
app.autodiscover_tasks(settings.INSTALLED_APPS + ('apps.core','apps.sales'))
网站中定义的任务已找到,但core和sales中的任务未找到。它们的布局都与apps.py
和tasks.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'
我遇到这个问题是因为虚拟环境配置错误。
如果安装的应用程序在运行芹菜的虚拟环境中缺少依赖项,则不会自动发现安装的应用程序的任务。当我从在同一台机器上运行web服务器和芹菜转向分布式解决方案时,我突然想到了这一点。错误的生成导致不同节点上的环境文件不同。
我添加了缺少的依赖项,然后重新启动芹菜服务。
这在许多芹菜问题中都有讨论,比如#2596和#2597。
如果您使用的是芹菜3.x,修复方法是使用:
如#3341所述,如果您使用的是芹菜4.x(即将发布),则可以使用:
我必须将此添加到定义芹菜应用程序的模块中:
相关问题 更多 >
编程相关推荐