Kru*_*kas 12 python django celery
我有一个与Celery 3.1的Django 1.7项目.我的Django项目中的所有应用程序都使用新的AppConfig.问题是并非所有任务都找到了autodiscover_tasks:
app.autodiscover_tasks(settings.INSTALLED_APPS)
Run Code Online (Sandbox Code Playgroud)
如果我使用这样的autodiscover_tasks它将工作:
app.autodiscover_tasks(settings.INSTALLED_APPS + ('apps.core','apps.sales'))
Run Code Online (Sandbox Code Playgroud)
找到了网站中定义的任务,但核心和销售中的任务却没有.所有都具有相同的布局apps.py和tasks.py.
项目文件夹结构是:
apps
core
apps.py
tasks.py
dashboard
apps.py
sales
apps.py
tasks.py
websites
apps.py
tasks.py
Run Code Online (Sandbox Code Playgroud)
类定义如下:
class WebsitesConfig(AppConfig):
name = 'apps.websites'
verbose_name = 'Websites'
class SalesConfig(AppConfig):
name = 'apps.sales'
verbose_name = 'Sales'
Run Code Online (Sandbox Code Playgroud)
Dod*_*die 20
如果您使用的是Celery 3.x,则修复方法是使用:
from django.apps import apps
app.autodiscover_tasks(lambda: [n.name for n in apps.get_app_configs()])
Run Code Online (Sandbox Code Playgroud)
如#3341中所述,如果您使用的是Celery 4.x(即将发布),您可以使用:
app.autodiscover_tasks()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6132 次 |
| 最近记录: |