Функция планирования задач в python и использование библиотеки расписаний в python - PullRequest
0 голосов
/ 06 апреля 2020

Я создал функцию планирования задач в python и использовал библиотеку sched и использовал функцию sch.enterabs () для планирования нескольких функций, и она выполняет несколько функций в определенное время для каждой из них, но если выполнение первой функции занимает много времени, следующая будет ждать, пока первая не завершится sh, и не будет работать в запланированное время. Я хотел, чтобы это сработало, когда придет время, независимо от того, что было завершено первым, кто-нибудь мне поможет?

Код расписания

def schedule_with_properties():
    sch = sched.scheduler(time.time, time.sleep)


    hh = "09"
    mm = "10"
    ss = 52
    ninute = mm - 1


    t1 = (2020, 4, 1, int(hh), int(ninute), ss, 1, 48, 0)
    t2 = (2020, 4, 1, 9, 15, ss, 1, 48, 0)
    t2 = (2020, 4, 1, 9, 20, 0, 1, 48, 0)

    time_sec = time.mktime(t1) 
    time_sec2 = time.mktime(t2) 
    time_sec3 = time.mktime(t3) 

    sch.enterabs(time_sec, 0, buyDigital, ())
    sch.enterabs(time_sec2, 1, buyDigital, ())
    sch.enterabs(time_sec3, 2, buyDigital, ())
    sch.run()

1 Ответ

0 голосов
/ 10 апреля 2020

Спасибо за остановку, я продолжал использовать библиотеку sched и использовал threading, как было предложено, поэтому, когда придет время, он создаст новый thread для этого события, поэтому никакое событие не будет мешать другим, таким образом

job = []

file= open('list.txt', 'r')

for line in arquivo:
    Ent = 10
    time = "10:00"
    Par = line[3:9]
    Dur = line[1:2]
    Dir = line[19:22]
    x = threading.Thread(target=run, args=(Ent,Par,Dir,Dur,time))
    job.append(x)

for j in job:
        j.start()

метод выполнения

def run(Ent,Par,Dir,Dur,time):
        sch.enterabs(Hora, 1, someMethod, (Ent,Par,Dir,Dur,time))
    sch.run()



def someMethod(Ent,Par,Dir,Dur,time):
   ......
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...