Я пытаюсь использовать MongoDB в качестве очереди сообщений для Celery (в приложении Django).Текущая версия Celery для разработчиков (2.2.0rc2) должна позволять вам это делать, но я не могу заставить кого-то из рабочих подхватить создаваемые мной задачи.
Версии: celery v2.2.0rc3
mongodb 1.6.5
pymongo 1.9
django-celery 2.2.0rc2
В моих настройках у меня есть:
CELERY_RESULT_BACKEND = "mongodb"
CELERY_MONGODB_BACKEND_SETTINGS = {
# Shouldn't need these - defaults are correct.
"host": "localhost",
"port": 27017,
"database": "celery",
"taskmeta_collection": "messages",
}
BROKER_BACKEND = 'mongodb'
BROKER_HOST = "localhost"
BROKER_PORT = 27017
BROKER_USER = ""
BROKER_PASSWORD = ""
BROKER_VHOST = ""
import djcelery
djcelery.setup_loader()
Я создал тестФайл tasks.py выглядит следующим образом:
from celery.decorators import task
@task()
def add(x, y):
return x + y
Если я запускаю celeryd в фоновом режиме, он запускается нормально.Затем я открываю оболочку Python и запускаю следующее:
>>> from myapp.tasks import add
>>> result = add.delay(5,5)
>>> result
<AsyncResult: 7174368d-288b-4abe-a6d7-aeba987fa886>
>>> result.ready()
False
Проблема заключается в том, что ни один рабочий никогда не поднимает задачи.Я пропускаю настройку или что-то?Как указать сельдерею на очередь сообщений?