Почему celery не отправляет письмо в указанное время?
Сделал отправку почты за час до наступления события(модель в django), в shell проверил работает проверка даты, но celery не отправляет ни почту, ни принт в консоль. Есть предчуствие , что что-то не дописал, так как не работал с запланированными действиями еще. но идей нет. Я нигде не подключал shedule.py возомжно в этом причина
tasks.py:
@shared_task
def event_send_mail():
events = Event.objects.filter(event_date=datetime.now() + timedelta(minutes=60))
for event in events:
print("Событие")
send_mail("Напоминание о событии", str(event.title) + "начинаеся через час",
"[email protected]", [event.user.email, ])
shedule.py:
CELERYBEAT_SCHEDULE = {
'send_mail': {
'task': 'send_mail',
'schedule': timedelta(minutes=1),
},
}
Ответы (1 шт):
Автор решения: Roman Konoval
→ Ссылка
Неправильно указано имя задачи. Должно быть tasks.event_send_mail:
CELERYBEAT_SCHEDULE = {
'send_mail': {
'task': 'tasks.event_send_mail',
'schedule': timedelta(minutes=1),
},
}
Ну и CELERYBEAT_SCHEDULE должно быть в django settings.