Как реализовать отправку напоминания пользователю в установленное им время?

Необходимо отправлять пользователям напоминания, пользователь сам выбирает дату и время, так же он может удалить напоминание. Я вынес логику проверки в отдельный поток, где в бесконечном цикле каждую секунду производится проверка. Запускается этот поток при обращении к определенной странице.
def check_reminders():
    while True:
        # Берем самое ближайшее напоминание и сравниваем с текущим временем,
        # если равны, отправляем напоминание пользователю
        time.sleep(1)


def run_thread(request):
    # Проверяем не запущен ли уже поток с проверкой напоминаний
    for thread in threading.enumerate():
        if thread.name == 'reminders_thread':
            return
    t1 = threading.Thread(target=check_reminders, name='reminders_thread')
    t1.start()

Но такое решение однозначно костыльное и пригодно только для очень малого числа пользователей. Погуглив, нашел сервис celery, но не уверен, подходит ли он для моей задачи? Так же не знаю возможно ли его развернуть на heroku?
  • Вопрос задан
  • 201 просмотр
Пригласить эксперта
Ответы на вопрос 1
solotony
@solotony
code for food, caviar preferably
а зачем каждую секунду-то ?

можно вызывать по крону консольную команду и исполнять из нее, можно поставить пакет django_cron.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы