Թեև յուրաքանչյուր օպերացիոն համակարգ ունի ժամանակացույցի իր սեփական մատուցումը, ինչպիսին է հայտնի CRON-ը Linux-ում կամ Windows Task Scheduler-ում, երբեմն ավելի պարզ տարբերակ, որը կարելի է կառավարել սկրիպտի միջոցով, առաջարկում է լրացուցիչ օգտակարություն մեքենայի և հարթակի վրա:

schedule-ը python փաթեթ է, որի նպատակն է առաջարկել նման տարբերակ: Այն ապահովում է ստատուս-քվոյի թեթև այլընտրանք և հատկապես հեշտացնում է python ֆունկցիայի գործարկումը ժամանակացույցի վրա՝ մարդու ընթեռնելի կոնֆիգուրացիայով: Նախագիծն ունի բազմաթիվ ներդրողներ, անցնող թեստային փաթեթ և բազմաթիվ հետևորդներ Github-ում, ինչը ավելացնում է դրա տարածվածությունն ու ինտրիգը:

Ընտրանքներ

schedule-ում ֆունկցիայի պլանավորումը պարզապես պահանջում է օգտագործել ստորև բերված օրինակները և տրամադրել գործառույթ՝ որպես առաջադրանք գործարկելու համար:

import schedule
import time

def job():
    print("I'm working...")
schedule.every(10).seconds.do(job)
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every(5).to(10).minutes.do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
schedule.every().minute.at(":17").do(job)
while True:
    schedule.run_pending()
    time.sleep(1)

Փաթեթը ներառում է բազմաթիվ այլ մատչելի գործողություններ հիմնական API-ից, ներառյալ՝

  • Աշխատանքի ժամանակացույցի համար օգտագործեք դեկորատոր
  • Փոխանցել փաստարկները աշխատանքին schedule.every(2).seconds.do(greet, name="Alice")
  • Չեղարկել աշխատանք
  • Մեկ անգամ գործ արա
  • Ստացեք բոլոր աշխատանքները
  • Չեղարկել բոլոր աշխատանքները
  • Ստացեք մի քանի աշխատանք՝ զտված ըստ պիտակների
  • Չեղարկել մի քանի աշխատանք՝ զտված ըստ պիտակների
  • Գործարկել պատահական ընդմիջումներով
  • Գործարկել մինչև որոշակի ժամանակ
  • Ժամանակը մինչև հաջորդ կատարումը
  • Գործարկեք բոլոր աշխատանքները հիմա՝ անկախ դրանց ժամանակացույցից

Պլանավորեք ցանկացած ծրագիր windows-ում

Հետևյալ օրինակը ցույց է տալիս, թե ինչպես կարող եք օգտագործել powershell-ը, bat ֆայլը, python-ը, schedule-ը և windows-ի գործարկման թղթապանակը՝ պլանավորելու ցանկացած սցենար կամ python կոդ և ապահովել, որ այն գործարկվի Windows-ի գործարկման ժամանակ (այսինքն՝ ավտոմատ վերագործարկումից հետո):

ՆՇՈՒՄ. Ես օգտագործում եմ anaconda շրջակա միջավայրի կառավարման համար: Եթե ​​Powershell-ում ակտիվացնելու համար conda-ի հետ կապված խնդիրներ ունեք, գուցե անհրաժեշտ լինի առաջադրվել՝ conda init powershell

Այս կարգավորումը պահանջում է ընդամենը 3 հիմնական ֆայլ: Բոլոր ֆայլերը ներկայացված են ստորև:

  • bat ֆայլ, որը կարող է ավտոմատ կերպով գործարկվել (ուղղակի կամ դյուրանցման միջոցով) գործարկման թղթապանակում գտնվող պատուհանների միջոցով
  • մենեջերի powershell սկրիպտ՝ կարգավորման ցանկացած քայլ կատարելու համար, ինչպես օրինակ՝ ակտիվացնելով կոնդա միջավայրը և այնուհետև գործարկել ժամանակացույցը
  • ժամանակացույցի python սկրիպտ, որը գործարկում է python ֆունկցիան կամ հրամանի տողի սցենարը այնպիսի փաթեթի միջոցով, ինչպիսին subprocessն է

Եթե ​​դուք նաև ցանկանում եք համոզվել, որ պլանավորված ծրագիրը կշարունակի գործել այն բանից հետո, երբ ձեր մեքենան կանցնի ավտոմատ կամ պլանավորված վերագործարկում (ընդհանուր խնդիր ձեռնարկության VM-ների հետ), ապա կարող եք հեշտությամբ ստեղծել դյուրանցում launcher.bat ֆայլին և տեղադրել այդ դյուրանցումը գործարկման թղթապանակում: . Դուք կարող եք գտնել գործարկման թղթապանակը՝ փնտրելով «shell:startup» run ծրագրում, որը կարելի է գտնել մեկնարկի ցանկի միջոցով:

Երբ սա ՉԻ աշխատում

schedule-ը նախատեսված է որպես պարզ պլանավորման փաթեթ: Ինչպես նշված է նախագծերի փաստաթղթերում, այն իդեալական չէ, երբ պահանջվում են հետևյալը.

  • Աշխատանքային համառություն (հիշեք ժամանակացույցը վերագործարկումների միջև) (թեև մենք այս հոդվածում «որոշ չափով» լուծել ենք այս մեկը)
  • Ճշգրիտ ժամանակացույց (ենթավրկյան ճշգրիտ կատարում)
  • Միաժամանակյա կատարում (բազմաթելեր)
  • Տեղայնացում (ժամային գոտիներ, աշխատանքային օրեր կամ արձակուրդներ)

Անկախ այս բացասական կողմերից, այս փաթեթը դեռևս բավականին հարմար է, երբ առաջադրանքների կառավարիչը չափազանց ծանր է կամ անհրաժեշտ է խաչաձև հարթակի պլանավորում: Սա դիտելու նախագիծ է:

Հղումներ