Python 芹菜任务组未在后台执行,导致异常

Python 芹菜任务组未在后台执行,导致异常,python,django,celery,Python,Django,Celery,我的芹菜任务没有在Django 1.7/Python3项目的后台执行 # settings.py BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULTBACKEND = BROKER_URL CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' CELERY_ALWAYS_EAGER = False 我的根应用程序模块中有芹菜.py: from __future__

我的芹菜任务没有在Django 1.7/Python3项目的后台执行

# settings.py

BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULTBACKEND = BROKER_URL
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
CELERY_ALWAYS_EAGER = False
我的根应用程序模块中有
芹菜.py

from __future__ import absolute_import

import os
import django

from celery import Celery
from django.conf import settings

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_app.settings')
django.setup()

app = Celery('my_app')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
并将应用程序加载到根模块中的
\uuuu init\uuuu.py

from __future__ import absolute_import
from .celery import app as celery_app
我的任务在我的应用程序模块的tasks.py文件中设置为共享任务:

from __future__ import absolute_import
from celery import shared_task

@shared_task
def update_statistics(profile, category):
    # more code
我把这个任务称为一个小组:

. . .
job = group([update_statistics(f.profile, category)
          for f in forecasts])
job.apply_async()
但是,我在我的任务队列中没有看到任何状态更新,我通过以下方式启动任务队列:

$ celery -A my_app worker -l info
任务正在执行,只是不在后台。如果我向任务代码中添加print语句,我将在Django开发服务器控制台中看到输出,而不是芹菜队列

在前台运行任务后,我遇到以下异常:

'NoneType' object has no attribute 'app'

如果您感兴趣,下面是完整的回溯:

在创建组时,您直接在列表中调用任务,因此它们会当场执行。您需要使用
.subtask()
方法(或其快捷方式
.s()
)创建子任务,而无需调用它们:

job = group([update_statistics.s(f.profile, category) for f in forecasts])

先生,你就是那个人。我不确定我是如何错过了文档中的内容,但它按预期工作。投票吧,马上就来。非常感谢你!