Предположим, у меня есть два триггера cron:
trigger1 = CronTrigger(second='0,20,40')
trigger2 = CronTrigger(second='0,10,20,30,40,50')
, и я создаю свой планировщик так:
scheduler = BlockingScheduler()
scheduler.add_job(lambda: method1(param1, param2), trigger=trigger1)
scheduler.add_job(lambda: method2(param1, param3), trigger=trigger2)
с помощью этих двух методов, которые работают:
def method1(s, t):
print("doing work in method1")
time.sleep(2)
print("doing work in method1")
time.sleep(2)
print("doing work in method1")
time.sleep(2)
def method2(s, t):
print("doing work in method2")
time.sleep(2)
print("doing work in method2")
time.sleep(2)
print("doing work in method2")
time.sleep(2)
Когда запланированное время перекрывается (например, 0, 20, 30), и у планировщика есть два задания, запланированных на это время, кажется, что они запускаются в parellel. Вывод выглядит следующим образом:
doing work in method1
doing work in method2
doing work in method1
doing work in method2
doing work in method1
doing work in method2
Вопрос: Как настроить его так, чтобы отложенные задания выполнялись последовательно. ie. если время двух заданий перекрывается, запустите первое задание до его завершения, а затем запустите второе.
Редактировать: причина, по которой я использовал библиотеку apsschedule, заключается в том, что мне нужны функции, похожие на cron. Мне нужно, чтобы этот процесс запускался между определенным временем дня с определенными интервалами.