我使用新安装的 celery 和 django 1.4 进行了以下设置:
设置.py:
import djcelery
djcelery.setup_loader()
BROKER_HOST = 'localhost'
BROKER_PORT = 5672
BROKER_USER = 'user'
BROKER_PASSWORD = 'password'
BROKER_VHOST = 'test'
[...]
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.admin',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.staticfiles',
'djcelery',
'south',
'compressor',
'testapp',
]
testapp/tasks.py:
from celery.task import task
@task()
def add(x, y):
return x + y
向 celeryd 的消息传递工作正常,但该任务始终未注册(因此自动发现在这里似乎无法正常工作)。只有当我在tasks/__init__.py
任务中找到导入任务模块并且我可以使用它。
此外,关于装饰器导入的文档也有点令人困惑,但我认为这是正确的。
我的设置中的错误在哪里?