Задать вопрос
@marselabdullin

Почему 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) + "начинаеся через час",
                                     "marsel.abdullin.00@mail.ru", [event.user.email, ])


shedule.py:
CELERYBEAT_SCHEDULE = {
    'send_mail': {
        'task': 'send_mail',
        'schedule': timedelta(minutes=1),
    },
}
  • Вопрос задан
  • 287 просмотров
Подписаться 2 Сложный Комментировать
Пригласить эксперта
Ответы на вопрос 2
celery достаточно громоздкий для таких простых задач. Я бы советовал вам использовать python rq. Для выполнения вашей задачи, нужно будет настроить окружение Django внутри задачи, чтобы загрузить нужные модели. Далее просто забрать cron. Это самое простое, и помогает избавиться от сложного celery
Ответ написан
@szelga
проверьте, запустили ли вы отдельный процесс для celery-beats: https://docs.celeryproject.org/en/stable/userguide...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы