Я пытаюсь интегрировать Celery в мое приложение django, чтобы выполнить некоторые вещи асинхронно.Первым делом остановимся на функции send_mail.
У меня есть:
Установка Redis работает на 6379. Также добавлены соответствующие настройки в settings.py
CELERY_BROKER_URL = 'redis://localhost'
Настройка работника сельдерея
celery -A celery_settings worker -l DEBUG -E
Вот код, который его вызывает (внутрипредставление):
send_email_async.apply_async([
'Subject',
'body,
'your_favorite@friend.com',
[user.email]], countdown=1
)
return JsonResponse({'key': 'value'})
Вот задача:
@task
def send_email_async(subject, body, from_mail, to, fail_silently=False):
send_mail(subject, body, from_mail, to, fail_silently)
return True
Я могу видеть через отладчик, что выполнение достигает задачи сельдерея. Хотя похоже, что оно там заблокировано без дальнейших подсказок, что делать.
from __future__ import absolute_import, unicode_literals
from eservices_hua.celery_settings import app as celery_app
__all__ = ['celery_app']
Впервые я использую сельдерей + django, поэтому ничего не принимаю :)) 1046 *