Python Django的芹菜任务总是阻塞

Python Django的芹菜任务总是阻塞,python,django,celery,django-celery,Python,Django,Celery,Django Celery,我的django设置中有以下设置: CELERY_TASK_RESULT_EXPIRES = timedelta(minutes=30) CELERY_CHORD_PROPAGATES = True CELERY_ACCEPT_CONTENT = ['json', 'msgpack', 'yaml'] CELERY_ALWAYS_EAGER = True CELERY_EAGER_PROPAGATES_EXCEPTIONS = True BROKER_URL = 'django://' CELE

我的django设置中有以下设置:

CELERY_TASK_RESULT_EXPIRES = timedelta(minutes=30)
CELERY_CHORD_PROPAGATES = True
CELERY_ACCEPT_CONTENT = ['json', 'msgpack', 'yaml']
CELERY_ALWAYS_EAGER = True
CELERY_EAGER_PROPAGATES_EXCEPTIONS = True
BROKER_URL = 'django://'
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'
我已将此内容包含在已安装的应用程序中:

'djcelery',
'kombu.transport.django'
我的项目结构是(django 1.5)

这是我的
芹菜.py
文件:

from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings.dev')
app = Celery('proj')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS, related_name='tasks')
在主
\uuuu init\uuuu.py
中,我有:

from __future__ import absolute_import
from .celery import app as celery_app
最后,在myapp1/tasks.py中,我定义了我的任务:

@task()
def retrieve():
  # Do my stuff
现在,如果启动django交互式shell并启动
retrieve
任务:

result = retrieve.delay()
它似乎总是一个阻塞调用,这意味着在函数返回之前,提示一直被阻塞。
结果
状态为SUCCESS,函数实际执行操作,但它似乎不是异步的。我错过了什么

这似乎是原因

如果这是真的,那么所有任务都将通过阻塞在本地执行,直到 任务返回。apply_async()和Task.delay()将返回 WangerResult实例,它模拟的API和 AsyncResult,但已计算结果除外

也就是说,任务将在本地执行,而不是发送到 排队


似乎总是有很多原因thishttp://celery.readthedocs.org/en/latest/configuration.html#celery-你一直在运行芹菜工人吗?@pynearrow是的,它正在运行,但我看不到任何消息。我使用
celery-A proj worker-l info
python manage.py芹菜worker--loglevel=info或
python manage.py芹菜change@dm03514看来你是对的,就是这样,你能发一个回复吗?
result = retrieve.delay()