У меня есть следующая настройка со свежим установленным сельдереем и django 1.4:
settings.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
, задача будет найдена, и я могу ее использовать.
Кроме того, документация немного запуталась в отношении импорта декоратора, но я думаю, что сейчас это правильно.
Где ошибка в моей настройке?