Как отправлять электронные письма с помощью Django/Celery на основе DateTimes, хранящихся в базе данных?

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

Таблица send_email_at: [2022/07/12, 2022/08/19, 2022/07/23, ...]

Итак, идеально было бы получить все даты > сейчас и, если срок наступил, просто отправить электронное письмо

Запускайте обычную задачу с beat (как вы отметили в своем вопросе) раз в день, и в задаче фильтруйте вашу таблицу на текущую дату, затем отправляйте электронные письма, если что-то существует:

@shared_task
def send_emails_if_due():
    if SendEmailAt.objects.filter(when=timezone.now().date()).exists():
        send_emails()
Вернуться на верх