Отправка БД запроса для проверки актуальности данных

Имеется сервер на Flask с библиотекой SQLAlchemy. В коде есть функция, допустим, my_method, которая отправляет запрос в БД PostgreSQL для сравнения дат с текущим днём:

    competition.end_date < datetime.date(datetime.today())

Мне нужно, чтобы эта проверка выполнялась каждые, к примеру, 30 минут. Я нашел следующий код:

    import time, traceback

    def every(delay, task):
    next_time = time.time() + delay
    while True:
       time.sleep(max(0, next_time - time.time()))
       try:
           task()
       except Exception:
           traceback.print_exc()      
       next_time += (time.time() - next_time) // delay * delay + delay
 

А потом запускал так:

   threading.Thread(target=lambda: every(1800, my_method)).start() 

Код работает, но мне кажется есть и другой способ это сделать, потому что я, например, не могу после запуска этого файла остановить его при помощи Ctrl + c.

Есть какие-то идеи? Буду благодарен за любую помощь:)

PS. Может есть какое-то решение именно с помощью Flask?


Ответы (0 шт):