#python #django #django-celery
#python #django #django-сельдерей
Вопрос:
Я работаю над проектом django с 2 приложениями. Я добавил задачу сельдерея в приложение A, и эта задача вызывает другой метод в tasks.py
приложении B. Метод в приложении B вызывается следующим образом
send_mail_task_B.delay(subject=subject,
from_email=from_email,
to_email=to_email,
bcc_email=bcc_email,
body=body,
html_message=html_message)
send_email_task_B
не выполняется с .delay
,
но когда я удаляю .delay
, он выполняется и отправляет электронные письма.
Мой __init__.py
файл в django project conf выглядит следующим образом:
from __future__ import absolute_import
# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from .celery import app as celery_app
celery_app
Я использую Django 2.2.8 и celery 4.3.0.
Я запускаю задачу сельдерея в оболочке django следующим образом:
from A.tasks import send_email_method
result=send_email_method_A.apply()
Комментарии:
1. вы запускали второе приложение как рабочий из celery или как приложение django. Для выполнения задачи второе приложение должно быть запущено как рабочий из сельдерея.
2. @Себастьян Стиглер да, это сработало, когда я запустил celery worker, спасибо