डेवलपर टूल · क्रोंटैब जनरेटर
Cron एक्सप्रेशन को ज़ोर से पढ़ना: कैसे */5 9-17 * * 1-5 शब्द बन जाते हैं
· यह काम किस प्रकार करता है
Cron कोड-समीक्षा डेवलपर-वर्कफ़्लो
एक बार जब आप क्रम जान लेते हैं तो किसी अभिव्यक्ति का अंग्रेजी में अनुवाद करना एक यांत्रिक प्रक्रिया है। यह पोस्ट रीडिंग एल्गोरिदम देता है, इसे मुश्किल उदाहरणों पर लागू करता है, और दिखाता है कि जेनरेटर का स्पष्टीकरण आपको जांचने में कैसे मदद करता है।
अंतर में एक क्रॉस्टैब जिसकी आप समीक्षा नहीं कर सकते - चरणों और सीमाओं के साथ पांच फ़ील्ड, और उन्हें समझाने वाली कोई टिप्पणी नहीं
पुल अनुरोध में पांच-टोकन अभिव्यक्ति विराम चिह्न में संपीड़ित निष्पादन योग्य नीति है। जो समीक्षक आकार को पहचानते हैं, लेकिन शेड्यूल को ज़ोर से नहीं बता सकते, वे एक समावेशी समापन बिंदु, एक गलत कदम या दो दिवसीय क्षेत्रों के बीच विशेष संबंध से चूकने की संभावना रखते हैं। इसलिए अनुवाद एक शुद्धता जांच है, न कि दिखावटी दस्तावेज़ीकरण।
ToolAcre अपना वाक्य चेतावनियों और पूर्वावलोकन द्वारा उपयोग किए गए पार्स किए गए ऑब्जेक्ट से प्राप्त करता है। केवल पाँच फ़ील्ड चिपकाएँ, आदेश और रहस्य बाहर छोड़ दें। यदि उत्पन्न शब्द लेखक की टिप्पणी से भिन्न है, तो समीक्षा को रोकें और अभिव्यक्ति को कहीं भी स्थापित करने से पहले इरादे को हल करें।
पहले दिन फ़ील्ड पढ़ें - सप्ताह और महीने का दिन आपको बताता है कि कौन सा दिन है, फिर मिनट और घंटा आपको बताता है कि कब
घड़ी विवरण से पहले कैलेंडर का दायरा स्थापित करना सबसे आसान है। माह और कार्यदिवस से पता चलता है कि वर्ष या सप्ताह के कौन से हिस्से पात्र हैं; महीने का दिन एक और कैलेंडर शर्त जोड़ सकता है; घंटे और मिनट फिर मिलान तिथियों के भीतर रन रखें। यह पढ़ने का क्रम मानव समीक्षा के लिए है, जबकि अभिव्यक्ति का संग्रहीत स्थिति क्रम पहले मिनट में रहता है।
हमेशा पूछें कि क्या दोनों दिन के क्षेत्र प्रतिबंधित हैं। यदि ऐसा है, तो ToolAcre उन्हें "या" के साथ जोड़ता है और एक चेतावनी देता है। निकटवर्ती AND फ़िल्टर के रूप में उन्हें आकस्मिक रूप से पढ़ने से शेड्यूल बदल जाता है। एक दिन के क्षेत्र में एक वाइल्डकार्ड उस अस्पष्टता को दूर करता है और दूसरे क्षेत्र को एकमात्र दिन के प्रतिबंध के रूप में कार्य करने देता है।
प्रत्येक टोकन का अनुवाद - * 'प्रत्येक' के रूप में, एक संख्या 'पर' के रूप में, एक सीमा 'से-से' के रूप में, एक चरण 'प्रत्येक एन से शुरू होता है' के रूप में
एक स्टार का अर्थ उस स्थिति में प्रत्येक अनुमत मान है। एक संख्या एक मान का चयन करती है. एक हाइफ़न में इसके अंतिम बिंदुओं के बीच प्रत्येक मान शामिल होता है। अल्पविराम आइटमों को जोड़ते हैं, और एक वाइल्डकार्ड, रेंज या नंगे प्रारंभ की शुरुआत से प्रत्येक nवें मान पर एक स्लैश नमूना बनाते हैं। फ़ील्ड का अपना न्यूनतम यह निर्धारित करता है कि वाइल्डकार्ड चरण कहाँ से शुरू होता है।
मामले की परवाह किए बिना नाम महीनों और सप्ताह के दिनों के लिए स्वीकार किए जाते हैं, जिनमें `JAN-MAR` और `MON-FRI` जैसी श्रेणियां शामिल हैं। रविवार को 0 या 7 लिखा जा सकता है और इसे 0 पर सामान्यीकृत किया जाता है। विवरण कोड सन्निहित विस्तारित मानों को "के माध्यम से" शब्दों में और गैर-सन्निहित मानों को एक पठनीय सूची में परिवर्तित करता है।
कार्यान्वित उदाहरण: टूल चयनित घंटों का वर्णन करता है, जबकि विस्तारित मिनट मान अंतिम रन की पहचान करते हैं
`*/5 9-17 * * 1-5` पांच चरणों, घंटों 9 से 17 और सप्ताह के दिनों में सोमवार से शुक्रवार तक मिनट मान 0 से 55 का चयन करता है। टूल चयनित घंटे की अवधि में मिनट कदम का वर्णन करता है। मानों का विस्तार करने से पता चलता है कि शामिल 17 घंटे में अंतिम उम्मीदवार 17:55 है।
वह अंतिम उम्मीदवार अक्सर छूट जाता है जब "9-17" को व्यावसायिक-दिन की सीमा के रूप में परिभाषित किया जाता है। Cron पूरे घंटे के मानों का चयन करता है, फिर उन्हें सभी चयनित मिनटों के साथ जोड़ता है। यदि आशय 17:00 पर समाप्त होता है, तो अभिव्यक्ति को केवल इसलिए सही नहीं माना जा सकता क्योंकि "नौ से पांच" शब्द परिचित लगते हैं।
कार्यान्वित उदाहरण: 0 0 1,15 * 3 - दिन-क्षेत्र को पढ़ना या ज़ोर से नियम का पालन करना ताकि यह छूट न जाए
अब `0 0 1,15 * 3` पढ़ें. मध्यरात्रि को चुना गया है, महीने का दिन पहला या पंद्रहवाँ है, और कार्यदिवस बुधवार है। क्योंकि दोनों दिन के फ़ील्ड प्रतिबंधित हैं, कैलेंडर की स्थिति प्रत्येक माह की पहली या पंद्रहवीं या प्रत्येक बुधवार है। यह "बुधवार नहीं है जब तारीख 1 या 15 है।"
ToolAcre की चेतावनी उस संघ को प्रमुख बनाती है, और उसके विवरण में "या" शब्द डाला गया है। अगली बार चलने वाला पूर्वावलोकन चयनित क्षेत्र के लिए ठोस तारीखें देता है। सभी तीन आउटपुट की समीक्षा करें क्योंकि अकेले एक धाराप्रवाह वाक्य अभी भी यह छिपा सकता है कि अंतर्निहित आवश्यकता एक प्रतिच्छेदन थी जिसे बोली सीधे व्यक्त नहीं कर सकती है।
अभिप्राय टिप्पणी को अभिव्यक्ति से जांचने के बाद ही संग्रहित करें
किसी अभिव्यक्ति के ऊपर की गई टिप्पणी इरादे को संरक्षित कर सकती है, लेकिन फ़ील्ड बदलने के बाद यह पुराने झूठ को भी संरक्षित कर सकती है। समीक्षा के दौरान मौजूदा टोकन से वाक्य बनाएं या मैन्युअल रूप से पुनर्निर्माण करें। यदि कोई संपादन `0` को `*/5` में बदल देता है, तो विस्तारित मिनट सेट और अंतिम रन की पुष्टि करने के बाद ही टिप्पणी को अपडेट करें।
ऐसी टिप्पणी को प्राथमिकता दें जो दीवार-घड़ी क्षेत्र की धारणा के साथ-साथ आवृत्ति भी बताती हो। अभिव्यक्ति में कोई समय-क्षेत्र फ़ील्ड नहीं है, जबकि ToolAcre का पूर्वावलोकन समीक्षक को एक चुनने के लिए कहता है। वह नोट किसी अन्य व्यक्ति को उसी सूची को पुन: पेश करने में मदद करता है, बिना यह बताए कि ब्राउज़र का विकल्प अंतिम शेड्यूलर को कॉन्फ़िगर करता है।
छह- और सात-क्षेत्रीय व्याकरणों को अस्वीकार कर दिया जाता है, उनका अनुवाद नहीं किया जाता है
पार्सर को ठीक पाँच फ़ील्ड की आवश्यकता होती है। छह-फ़ील्ड इनपुट को अग्रणी सेकंड शैली के बारे में एक विशिष्ट स्पष्टीकरण प्राप्त होता है; लंबे रूपों की व्याख्या नहीं की जाती है। ToolAcre में भी कोई वर्ष फ़ील्ड नहीं है। इसलिए इस आलेख में सादा-अंग्रेजी एल्गोरिदम केवल रिपॉजिटरी के पांच-क्षेत्र व्याकरण पर लागू होता है।
क्वार्ट्ज, स्प्रिंग या किसी अन्य उत्पाद से किसी फ़ील्ड को तब तक न हटाएं जब तक कि शेष पाठ मान्य न हो जाए। असमर्थित ऑपरेटर आवश्यक अर्थ ले सकते हैं। अनुवाद के लिए दोनों प्रणालियों के लिए दस्तावेज़ीकरण की आवश्यकता होती है, जबकि यह जनरेटर केवल अपने स्वयं के स्वीकृत मूल्यों, नामों, कैटेगरी, सूचियों, चरणों, वाइल्डकार्ड और उपनामों के लिए साक्ष्य प्रदान करता है।
टेकअवे: प्रत्येक अभिव्यक्ति में एक वाक्य होता है - और क्रोंटैब जनरेटर उस वाक्य का उत्पादन करता है ताकि आप इसकी तुलना इरादे से कर सकें
प्रत्येक समर्थित अभिव्यक्ति को सीमित फ़ील्ड मानों और एक कैलेंडर वाक्य में विस्तारित किया जा सकता है। उन मूल्यों को पढ़ने से उन अग्रणी उम्मीदवारों का पता चलता है जिन्हें अनौपचारिक वाक्यांश छोड़ देते हैं। शेड्यूल के ऑपरेशनल होस्ट तक पहुंचने से पहले यह डे-फ़ील्ड या नियम को बातचीत में शामिल करने के लिए बाध्य करता है।
समीक्षा के लिए, अभिव्यक्ति चिपकाएँ, बताई गई आवश्यकता के साथ उत्पन्न विवरण की तुलना करें, चेतावनियों का निरीक्षण करें और आने वाले समय का नमूना लें। परिणामी टिप्पणी को पंक्ति के बगल में रखें, लेकिन पार्स किए गए अभिव्यक्ति को निष्पादन योग्य स्रोत के रूप में मानें। जनरेटर शेड्यूल के इरादे की व्याख्या करता है; यह किसी आदेश को प्रमाणित नहीं करता है या इसे स्थापित नहीं करता है।