Ինչպես ստուգել cron արտահայտությունը և գտնել հաջորդ հինգ գործարկումները
Մուտքագրեք հինգ դաշտից բաղկացած cron արտահայտություն՝ այն ստուգելու և ընթացիկ UTC ժամանակից հետո հաջորդ հինգ գործարկումները ստանալու համար։ Հաջող արդյունքը ներկայացվում է ISO ձևաչափով՝ UTC ժամային գոտու նշումով։
Cron ժամանակացույցը հասկանալու ելակետը
Cron արտահայտությունը կարճ ձևով նկարագրում է, թե երբ պետք է կրկնվի առաջադրանքը։ Այս գործիքը ստուգում է այդ նկարագրության շարահյուսությունը և, եթե հաշվարկը հաջողվում է, ցույց է տալիս հաջորդ հինգ գործարկման պահերը։ Այն հարմար է ժամանակացույցը նախապես ստուգելու համար, օրինակ՝ երբ ցանկանում եք հասկանալ, թե ամսվա որ օրերին կամ օրվա որ ժամին կարող է առաջադրանքը գործարկվել։
Արտահայտությունը կազմվում է հինգ դաշտից։ Դաշտերը կարդացվում են այս հերթականությամբ՝ րոպե, ժամ, ամսվա օր, ամիս և շաբաթվա օր։ Եթե մուտք չտրամադրեք, հաշվարկի համար օգտագործվում է */5 * * * * արտահայտությունը, որը նախատեսում է հինգ րոպեն մեկ կրկնվող ժամանակացույց։ Այս լռելյայն արժեքը կարող է օգտակար լինել գործիքի աշխատանքի արագ ստուգման համար, սակայն իրական առաջադրանքի համար ընտրեք այնպիսի արտահայտություն, որը համապատասխանում է ձեր նպատակին։
Մուտքից մինչև հաջորդ հինգ ժամանակների հաշվարկը
-
Մուտքագրեք ձեր cron արտահայտությունը նախատեսված դաշտում։ Նախ ստուգեք, որ այն բաժանվում է հինգ իմաստային մասի։ Առաջին մասը վերաբերում է րոպեին, երկրորդը՝ ժամին, երրորդը՝ ամսվա օրվան, չորրորդը՝ ամսվան, իսկ հինգերորդը՝ շաբաթվա օրվան։ Այս հերթականությունը փոխելը կարող է բերել այլ ժամանակացույցի, նույնիսկ եթե գրառումը արտաքինից կանոնավոր է թվում։
-
Ուշադրություն դարձրեք բացատներին։ Սկզբի և վերջի ավելորդ բացատները հեռացվում են, իսկ իրար հաջորդող բացատների շարքը նախքան ստուգումը վերածվում է մեկ բացատի։ Այդ պատճառով սովորական ավելորդ բացատները ինքնուրույն չեն փոխում արտահայտության դաշտերի բաժանումը։ Այնուամենայնիվ, մի օգտագործեք կետադրական նշաններ կամ բառեր այնտեղ, որտեղ սպասվում է ժամանակացույցի արժեք։
-
Համոզվեք, որ դաշտերի քանակը հենց հինգն է։ Չորս, վեց կամ այլ քանակով բաժին ունեցող մուտքը չի անցնում այս ստուգման սահմանը, ուստի նախ ուղղեք կառուցվածքը։ Հինգ դաշտ ունենալը միայն ձևաչափային նախապայման է. այն դեռ չի նշանակում, որ արժեքները կամ ընտրված օրերը համապատասխանում են ձեր մտադրությանը։
-
Գործարկեք հաշվարկը և դիտեք վերադարձված տվյալները։ Որոնումը սկսվում է ընթացիկ UTC ժամանակից՝ վայրկյանի կոտորակային մասը հեռացնելուց հետո։ Հաջողության դեպքում կստանաք հինգ օրացուցային հանդիպում՝ ISO ձևաչափով ամսաթիվ-ժամի տողերի տեսքով, իսկ ժամային գոտին նշված կլինի որպես UTC։ Եթե արդյունքը պետք է համեմատեք տեղական ժամի հետ, փոխարկումը կատարեք առանձին և հաշվի առեք ձեր ժամային գոտու տարբերությունը։
-
Առանձին ստուգեք ամսվա օրվա և շաբաթվա օրվա սահմանափակումները։ Երբ երկու դաշտերն էլ սահմանափակող պայման ունեն, համապատասխանության համար կիրառվում է «կամ» տրամաբանություն. օրացուցային պահը կարող է ընտրվել, եթե կատարվում է պայմաններից մեկը։ Սա կարևոր է այն ժամանակ, երբ ակնկալում եք միայն երկու պայմանների միաժամանակյա կատարում, քանի որ այդպիսի ակնկալիքը կարող է ավելի քիչ հանդիպումներ տալ, քան գործիքի հաշվարկը։
-
Եթե հաշվարկը ձախողվում է, նորից կարդացեք հինգ դաշտերը ձախից աջ, վերանայեք արժեքները և ստուգեք ամսաթվի կամ այլ մուտքային տվյալների տրամաբանությունը։ Ձախողումը կարող է առաջանալ այն դեպքում, երբ cron շարահյուսությունը, ամսաթիվը, արժեքը կամ բանալին չի ընդունվում։ Նույն փորձի ընթացքում մի փոխեք մի քանի բաղադրիչ միանգամից, որպեսզի կարողանաք հասկանալ, թե որ ուղղումն է վերացրել խնդիրը։
Արդյունքի ընթերցում և դրա սահմանները
Հաջող հաշվարկը ցույց է տալիս, որ գործիքը կարողացել է ընդունել արտահայտությունը և որոնման ընթացքում գտել է հաջորդ հինգ օրացուցային հանդիպումները։ Յուրաքանչյուր տողը կարդացեք որպես ամսաթիվ և ժամ, որի հիմքը UTC-ն է։ Տողերի ISO ձևաչափը հարմար է ամսաթիվը, ժամը և ժամային գոտու նշումը տարբերելու համար, բայց այն ինքնուրույն չի վերածում պահը ձեր տեղական ժամի։
Հաջորդ հինգ տողերը ժամանակացույցի օրինակներ են տվյալ հաշվարկի մեկնարկային պահից հետո, ոչ թե բոլոր հնարավոր հանդիպումների ցանկը։ Քանի որ մեկնարկը կապված է ընթացիկ UTC ժամանակի հետ, նույն արտահայտության համար արդյունքները կարող են փոխվել, երբ այն ստուգվում է մեկ այլ պահին։ Այդ պատճառով արդյունքը համեմատելիս գրանցեք նաև այն պահը, որի նկատմամբ կատարում եք ստուգումը, հատկապես եթե սահմանային ժամանակի մոտ եք աշխատում։
Ձախողումը նույնպես ունի մեկից ավելի հնարավոր պատճառ։ Այն կարող է մատնանշել շարահյուսության, ամսաթվի, արժեքի կամ բանալու հետ կապված handled սխալ, իսկ վավեր թվացող արտահայտությունը կարող է չտալ արդյունք, եթե առաջիկա հանդիպում չի գտնվում տասը տարվա որոնման սահմանում։ Այս սահմանը նշանակում է, որ հազվադեպ ժամանակացույցի դեպքում բացակայող արդյունքը պարտադիր չէ մեկնաբանել որպես միայն տառասխալ։ Նախ ստուգեք գրառման իմաստը, ապա պարզեք՝ առաջիկա համապատասխան օր կա՞ սահմանված ժամանակահատվածում։
Հինգ դաշտի կառուցվածքը նաև սահմանափակում է մեկնաբանությունը։ Այս ստուգման հիման վրա մի եզրակացրեք, որ վեց դաշտով կամ այլ cron բարբառով գրառումը կընդունվի։ Եթե ձեր առաջադրանքի փաստաթղթերում օգտագործվում է այլ ձևաչափ, նախ համադրեք այն պահանջվող հինգ դաշտերի հերթականության հետ և միայն հետո գնահատեք ստացված ժամանակները։
Գործնական օրինակ
Առաջադրանքի պատասխանատուն ցանկանում է ստուգել, թե ինչպես է ներկայացվում ամսվա առաջին օրվա UTC կեսգիշերին նախատեսված ժամանակացույցը։
Մուտքագրեք 0 0 1 * * արտահայտությունը և գործարկեք հաշվարկը՝ ամսվա առաջին օրվա կեսգիշերային ժամանակացույցը ստուգելու համար։
Պատասխանը պետք է պարունակի հինգ ISO ձևաչափով ամսաթիվ-ժամի տող, որոնցում ժամային գոտին նշված է որպես UTC։
Սահմանափակումներ
- Որոնումը չի անցնում տասը տարվա սահմանը, ուստի շարահյուսորեն ընդունելի գրառումը կարող է ձախողվել, երբ այդ ընթացքում առաջիկա հանդիպում չի գտնվել։
Հաճախակի սխալներ
- Վեց դաշտով մուտքը չի անցնում հինգ դաշտի նախնական ստուգումը։ Հեռացրեք ավելորդ մասը միայն այն դեպքում, երբ ձեր ժամանակացույցը կարող է ճիշտ արտահայտվել րոպե, ժամ, ամսվա օր, ամիս և շաբաթվա օր հերթականությամբ։
Հաճախ տրվող հարցեր
Ի՞նչ է կատարվում, երբ cron արտահայտությունը դատարկ է։
Դատարկ մուտքի դեպքում հաշվարկը կատարվում է */5 * * * * լռելյայն արտահայտությամբ։
Ո՞ր ժամային գոտու հիման վրա են հաշվվում հաջորդ գործարկումները։
Հաշվարկի մեկնարկային պահը ընթացիկ UTC ժամանակն է, իսկ վերադարձված ամսաթիվ-ժամի տողերում ժամային գոտին նշվում է որպես UTC։
Ինչպե՞ս են համադրվում ամսվա օրվա և շաբաթվա օրվա սահմանափակումները։
Եթե ամսվա օրվա և շաբաթվա օրվա դաշտերը երկուսն էլ սահմանափակում ունեն, համապատասխանությունը որոշվում է «կամ» տրամաբանությամբ, և պահը կարող է համապատասխանել պայմաններից մեկին։