Я пытаюсь запланировать выполнение задачи каждый час. Задача - это функция, которая будет выполняться дольше и дольше. Минимальный перерыв, который необходим функции, составляет один час с момента ее пуска .
. После запуска функции необходимо запустить один час для ее повторного запуска. С этим приходит проблема. То, что функция становится длиннее и дольше для завершения, может занять больше часа, чтобы завершить эту функцию. Это означает, что планировщик вызвал бы функцию до ее завершения. Цель состоит в том, чтобы запускать эту функцию каждый час с момента ее начала, но ждать ее завершения, когда ее запуск занимает более часа.
Это то, что я пытался:
from threading import Thread
from apscheduler.schedulers.blocking import BlockingScheduler
import threading
import time
def job():
# This is a function that takes longer
# and longer
# and longer
# to complete
thread = Thread(target = job)
scheduler = BlockingScheduler()
scheduler.add_job(job, 'interval', hours=1)
if thread.is_alive():
print("waiting")
else:
scheduler.start()