Windows Task Scheduler-ում առաջադրանքներ կատարող յուրաքանչյուր ոք վաղ թե ուշ կհանդիպի անհասկանալի աշխատանքային ժամանակի տարբերությունների: Հրամանի տողում 5 րոպեում աշխատող PHP սկրիպտը հանկարծակի 20 րոպե է պահանջում, երբ այն կատարվում է Windows Task Scheduler-ի միջոցով: Նույն օգտատերը, նույն թույլտվությունները, նույն կոդը՝ կատարման չորս անգամ ավելի շատ ժամանակ: Ի՞նչ էր կատարվում:
Ժամեր շարունակ վրիպազերծումից, Process Monitor-ի սեսիաներից և անթիվ կարգավորումների համեմատություններից հետո լուծումը սարսափելիորեն պարզ էր. Windows Task Scheduler-ը լռելյայնորեն ավելի ցածր գործընթացի առաջնահերթություն է սահմանում: Task Scheduler-ում առաջադրանքների լռելյայն արժեքը հետևյալն է. 7 (Նորմալից ցածր), ոչ 4-6 (Նորմալ), ինչպես և սպասվում էր։ Այս թվացյալ փոքր տարբերությունը կարող է հանգեցնել կատարողականի զանգվածային վատթարացման I/O ինտենսիվ գործողություններում։
Windows-ի առաջնահերթության մակարդակները մանրամասն ներկայացված են:
| Արժեք | Առաջնահերթություն | Նկարագրություն |
|---|---|---|
| 0 | Իրական ժամանակում | Ամենաբարձր առաջնահերթություն (զգուշություն!) |
| 1 | Բարձր | Բարձր առաջնահերթություն |
| 2-3 | Նորմայից բարձր | Նորմալի մասին |
| 4-6 | Նորմալ | Ստանդարտ ինտերակտիվ գործընթացների համար |
| 7 | Նորմայից ցածր | DEFAULT-ը առաջադրանքների ժամանակացույցում |
| 8-9 | Նորմայից ցածր | Նույնիսկ ավելի ցածր |
| 10 | Անգործուն | Ամենացածր առաջնահերթությունը |
Առաջադրանքների ժամանակացույցում առաջնահերթության հետ կապված խնդիրը բազմաշերտ է. Երբ դուք արտահանում եք առաջադրանք և նայում XML-ին, դուք հաճախ ոչ Առաջնահերթության կարգավորում։ Այնուհետև Windows-ը լուռ կօգտագործի լռելյայն արժեքը։ 7. Գրաֆիկական ինտերֆեյսը (GUI) ցուցադրում է այս արժեքը արտահանման ժամանակ, բայց այն հստակորեն չի պահվում առաջադրանքի մեջ։ Ավելի ցածր առաջնահերթությունը ոչ միայն հանգեցնում է պրոցեսորի ժամանակի կրճատման, այլև:
- Սահմանափակված սկավառակի մուտքի/ելքի գործողություններ
- Ցանցի ավելի ցածր առաջնահերթություն
- Ֆայլային համակարգի վատ քեշավորում
- Տվյալների բազայի մուտքի ուշացումներ
Նույնիսկ եթե դուք օգտագործում եք նույն օգտատիրոջը և միացնում եք «Գործարկել ամենաբարձր արտոնություններով» տարբերակը, առաջադրանքը կատարվում է Windows-ի այլ կայանում/աշխատասեղան միջավայրում՝ տարբեր առաջնահերթություններով: Խնդիրը հայտնաբերելու համար կարող եք օգտագործել PowerShell-ը՝ բոլոր առաջադրանքները իրենց իրական առաջնահերթություններով ցուցակագրելու համար::
38b7fa6c77dc344401485cd338ea4128
Գրեթե բոլոր առաջադրանքներս առաջնահերթությամբ էին ընթանում 7. Մենք այժմ հատուկ կերպով շտկում ենք մի քանի առաջադրանքների առաջնահերթությունը միանգամից:
38b7fa6c77dc344401485cd338ea4128
Առաջնահերթությունը սահմանելուց հետո 4 (Սովորաբար) իմ PHP սկրիպտը կրկին աշխատեց սպասվող 300 վայրկյանում: Եթե դուք կարգավորել եք առաջադրանքներ որոշակի օգտատիրոջ հաշվով, կարող եք նաև հեշտությամբ նշել դա 10-րդ տողում՝ հետևյալ կերպ::
38b7fa6c77dc344401485cd338ea4128