Последовательное выполнение отложенных задач с Python APS - PullRequest
0 голосов
/ 27 апреля 2020

Предположим, у меня есть два триггера 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. Мне нужно, чтобы этот процесс запускался между определенным временем дня с определенными интервалами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...