Թեև յուրաքանչյուր օպերացիոն համակարգ ունի ժամանակացույցի իր սեփական մատուցումը, ինչպիսին է հայտնի 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
-ը նախատեսված է որպես պարզ պլանավորման փաթեթ: Ինչպես նշված է նախագծերի փաստաթղթերում, այն իդեալական չէ, երբ պահանջվում են հետևյալը.
- Աշխատանքային համառություն (հիշեք ժամանակացույցը վերագործարկումների միջև) (թեև մենք այս հոդվածում «որոշ չափով» լուծել ենք այս մեկը)
- Ճշգրիտ ժամանակացույց (ենթավրկյան ճշգրիտ կատարում)
- Միաժամանակյա կատարում (բազմաթելեր)
- Տեղայնացում (ժամային գոտիներ, աշխատանքային օրեր կամ արձակուրդներ)
Անկախ այս բացասական կողմերից, այս փաթեթը դեռևս բավականին հարմար է, երբ առաջադրանքների կառավարիչը չափազանց ծանր է կամ անհրաժեշտ է խաչաձև հարթակի պլանավորում: Սա դիտելու նախագիծ է: