Итак, у меня есть простой код Python, который отлично работает в обычной оболочке Python:
from pyramid_mailer.mailer import Mailer
from pyramid_mailer.message import Message
from pyramid_mailer.message import Attachment
mailer = Mailer(
host="172.10.10.240",
port="25")
message = Message(
subject="Orders with invalid status",
sender='[email protected]'],
recipients=['[email protected]'],
html="<p>Test</p>")
mailer.send_immediately(message)
Но если я создам задачу с сельдереем, например:
from pyramid_celery import celery_app as app
from pyramid_mailer.mailer import Mailer
from pyramid_mailer.message import Message
from pyramid_mailer.message import Attachment
mailer = Mailer(
host="172.10.10.240",
port="25")
@app.task
def wronglines_celery():
message = Message(
subject="Orders with invalid status",
sender='[email protected]'],
recipients=['[email protected]'],
html="<p>Test</p>")
mailer.send_immediately(message)
Этот второй пример не генерирует электронное письмо, он работает отлично и вообще не выдает ошибок, даже если уровень журнала установлен на DEBUG.
Бегущий сельдерей бьет с:
celery beat -A pyramid_celery.celery_app --ini development.ini
Использование подключаемого модуля пирамиды_сельдерея, как указано в официальной документации на веб-сайте сельдерея. Мой файл development.ini можно увидеть ниже (соответствующие части):
[celery]
BROKER_URL = amqp://app_rmq:password@localhost:5672/myvhost
CELERY_IMPORTS = intranet.celery_tasks
# Check once a day for orders with wrong line status
[celerybeat:task1]
task = intranet.celery_tasks.wronglines_celery
type = crontab
schedule = {"hour": 16, "minute": 30}
[logger_celery]
level = DEBUG
handlers =
qualname = celery
# Begin logging configuration
[loggers]
keys = root, intranet, sqlalchemy, celery
РЕДАКТИРОВАТЬ:
Если я запускаю сельдерей (без ритма), он работает отлично, например. если я запускаю с:
celery worker -A pyramid_celery.celery_app --ini development.ini
Все задачи выполняются (снова и снова), но все электронные письма отправляются, и ничто не выдает ошибку, похоже, это связано с появлением ритма, который вызывает проблемы.