Задача Celery не вставляется в очередь и, таким образом, приложение блокируется при вызове задачи - PullRequest
0 голосов
/ 19 мая 2019

Я пытаюсь интегрировать 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

Я могу видеть через отладчик, что выполнение достигает задачи сельдерея. Хотя похоже, что оно там заблокировано без дальнейших подсказок, что делать.

  • Это мой init .py

from __future__ import absolute_import, unicode_literals from eservices_hua.celery_settings import app as celery_app __all__ = ['celery_app']

Впервые я использую сельдерей + django, поэтому ничего не принимаю :)) 1046 *

...