Хорошо, я получил все установлено правильно, чтобы получить сельдерей + Redis в Джангосельдерея с Redis бэкэндом
Я получил
INSTALLED_APPS = (
'djcelery',
'kombu.transport.django',
)
Это в моих настройках
CELERY_REDIS_HOST = 'localhost'
CELERY_REDIS_PORT = 8889
CELERY_REDIS_DB = 0
CELERY_RESULT_BACKEND = 'redis'
BROKER_URL = "redis://localhost:8889/0"
REDIS_CONNECT_RETRY = True
CELERY_IGNORE_RESULT = True
CELERY_SEND_EVENTS = True
CELERY_TASK_RESULT_EXPIRES = 60
CELERYBEAT_SCHEDULER= 'djcelery.schedulers.DatabaseScheduler'
Я получил Redis работает с
./redis-server
Он выводит на терминал каждый второй или так я также могу запустить
./manage.py celeryd -E -B --loglevel=INFO -n w1.d820
Без ошибок я могу даже видеть мои задачи добавляются и успешно закончил с
./manage celeryev
Так что даже думал, что он получает вход по celeryev этот код не работает:
from celery.task import task
@task
def add(x, y):
return x + y
res = add.apply_async(args=[1,5])
print res.wait()
это просто висит никогда не возвращает результат, я могу видеть его на самом деле т участвовав, чтобы получить его из Redis, потому что если я
./redis-cli
MONITOR
Я получаю много GetS пытается получить нон ключ существования Так что мой вывод заключается в том, что Джанго не спасает в бэкэнд Что не так с моими настройками? Я думаю, что я пропустил что-то очевидное, и я не вижу его, потому что я слишком долго борюсь с этим. Справка
Btw Я не могу использовать стандартный порт 6379, потому что я на общем сервере.
UPDATE с использованием этих
celery==2.5.3
django-celery==2.5.5
django-celery-with-redis==2.5
Его декоратор справа. Где вы это видите? Это даже не сработало. Для этого вам нужно будет «импортировать сельдерей». – sberry
Я взял это прямо из примера версий разработки. См. Здесь: http://celery.github.com/celery/userguide/tasks.html – Michael