क्रॉन एक्सप्रेशन जनरेटर
क्रॉन एक्सप्रेशन जनरेटर
क्या है
एक क्रॉन अभिव्यक्ति एक स्ट्रिंग होती है जो पुनरावृत्त होने वाले कार्यों को निष्पादित करने के लिए एक शेड्यूल का प्रतिनिधित्व करती है। इसका उपयोग यूनिक्स/लिनक्स के क्रॉन डेमन, जावा के क्वार्टज़ शेड्यूलर, AWS क्लाउडवॉच इवेंट्स, कुबेरनेट्स क्रॉनजॉब्स, गिटहब एक्शन्स में निर्धारित कार्यप्रवाह और कई अन्य शेड्यूलिंग प्रणालियों द्वारा किया जाता है। मानक क्रॉन प्रारूप (5 फील्ड): – मिनट (0–59) – घंटा (0–23) – महीने का दिन (1 से 31 तक) - महीना (1–12 या जनवरी–दिसंबर) - सप्ताह का दिन (0–7 या रविवार–शनिवार; जहाँ 0 और 7 = रविवार) विस्तारित प्रारूप: - 6-फील्ड (क्वार्ट्ज़): शुरुआत में सेकंड (0–59) जोड़ता है - 7-क्षेत्र: अंत में वर्ष जोड़ता है विशेष अक्षर: - * (तारांकन): सभी मान (प्रति मिनट, प्रति घंटा आदि) - , (कोमा): कई मान (1, 3, 5 = पहला, तीसरा और पाँचवाँ) – (हाइफ़न): मानों की सीमा (1–5 = पहले से पाँचवें तक) / (स्लैश): चरण मान (*/15 = हर 15 इकाइयों पर) - ? (प्रश्न चिह्न): कोई विशिष्ट मान नहीं है (महीने के दिन या सप्ताह के दिन के लिए उपयोग किया जाता है) - L: अंतिम (महीने का अंतिम दिन, अंतिम शुक्रवार आदि) - W: सप्ताह का दिन (दिए गए तारीख के सबसे निकटतम सप्ताह का दिन) - #: नंबर Nवीं घटना (2#3 = तीसरा सोमवार) सामान्य उदाहरण: - 0 0 * * *: हर रात मध्यरात्रि पर –*15* : हर 15 मिनट पर - 0 9 * * 1-5: हर कार्यदिवस सुबह 9 बजे - 0 0 1 * *: प्रत्येक महीने का पहला दिन मध्यरात्रि पर - 0 */6 * * *: हर 6 घंटे में यह उपकरण कई क्रॉन डायलेक्ट्स का समर्थन करता है और प्रत्येक अभिव्यक्ति के लिए मानव-पठनीय विवरण प्रदान करता है।
कैसे उपयोग करें
- अपना क्रॉन डायलेक्ट चुनें: स्टैंडर्ड यूनिक्स क्रॉन (5 फील्ड), क्वार्टज/स्प्रिंग (6 फील्ड, जिनमें सेकंड शामिल हैं), AWS क्लाउडवॉच, या अन्य वेरिएंट। इंटरफ़ेस उपयुक्त फील्ड दिखाने के लिए स्वतः अनुकूलित हो जाता है।
- प्रत्येक फील्ड को दृश्य नियंत्रणों का उपयोग करके कॉन्फ़िगर करें। मिनटों और घंटों के लिए, विशिष्ट मान चुनने या स्टेप अभिव्यक्तियाँ दर्ज करने हेतु चेकबॉक्स का उपयोग करें (उदाहरण के लिए, प्रत्येक 5 मिनट में */5)। महीने के दिन के लिए, विशिष्ट तारीखें चुनें या 'अंतिम दिन' जैसे विशेष विकल्पों का उपयोग करें।
- महीने के फ़ील्ड को उन महीनों को चेक करके सेट करें जिनमें आप जॉब चलाना चाहते हैं। * के लिए 'हर महीने' या विशिष्ट महीनों का चयन करें। स्पष्टता के लिए टूल महीनों के नामों के साथ संख्याएँ भी दिखाता है।
- सप्ताह के दिन के फील्ड को भी इसी प्रकार कॉन्फ़िगर करें। विशिष्ट दिन चुनें (व्यापारिक दिनों के लिए सोमवार से शुक्रवार तक) या 'हर दूसरे दिन' जैसे अभिव्यक्तियों का उपयोग करें। ध्यान दें: कुछ क्रॉन कार्यान्वयनों में महीने का दिन और सप्ताह का दिन आपस में परस्पर क्रिया करते हैं।
- उत्पन्न क्रॉन अभिव्यक्ति को आउटपुट फील्ड में देखें। जैसे ही आप कोई सेटिंग समायोजित करते हैं, यह रीयल-टाइम में अद्यतन होती रहती है। नीचे दिया गया सरल अंग्रेजी विवरण यह स्पष्ट रूप से बताता है कि जॉब कब चलेगा।
- 'अगले निष्पादन समय' सुविधा का उपयोग करके अपनी अभिव्यक्ति का परीक्षण करें, जो वर्तमान तारीख के आधार पर अगले 5–10 निष्पादन समयों की गणना करके प्रदर्शित करती है। इससे यह सत्यापित करने में मदद मिलती है कि अभिव्यक्ति आपकी अपेक्षा के अनुसार कार्य कर रही है।
- क्रॉन एक्सप्रेशन को अपने क्लिपबोर्ड में कॉपी करें और इसे अपने crontab, CI/CD पाइपलाइन कॉन्फ़िग, Kubernetes CronJob YAML या किसी भी शेड्यूलिंग सिस्टम में पेस्ट करें। सिंटैक्स की सहीता जाँचने के लिए 'Validate' बटन का उपयोग करें।
उदाहरण
इनपुट: Every day at 3:30 AM
प्रक्रिया:
Minutes=30, Hours=3, Day=*, Month=*, Weekday=*परिणाम: 30 3 * * *
इनपुट: Every Monday at 9:00 AM
प्रक्रिया:
Minutes=0, Hours=9, Weekday=1परिणाम: 0 9 * * 1
इनपुट: Every 15 minutes
प्रक्रिया:
Minutes=*/15, Hours=*परिणाम: */15 * * * *
संबंधित खोजें
लोग यह भी खोजते हैं: क्रॉन एक्सप्रेशन जनरेटर, क्रॉन शेड्यूलर, क्रॉन बिल्डर, क्रॉन एक्सप्रेशन।
क्रॉन एक्सप्रेशन जनरेटरक्रॉन शेड्यूलरक्रॉन बिल्डरक्रॉन एक्सप्रेशन
अक्सर पूछे जाने वाले प्रश्न
स्टैंडर्ड क्रॉन और क्वार्टज़ क्रॉन में क्या अंतर है?
स्टैंडर्ड यूनिकॉन क्रॉन में 5 फील्ड होते हैं (मिनट, घंटा, महीने का दिन, महीना, सप्ताह का दिन)। क्वार्टज क्रॉन (जावा/स्प्रिंग एप्लिकेशनों में उपयोग किया जाता है) शुरुआत में एक सेकंड फील्ड जोड़ता है, जिससे कुल 6 फील्ड हो जाते हैं। क्वार्टज, स्टैंडर्ड क्रॉन में उपलब्ध न होने वाले अतिरिक्त विशेष अक्षरों जैसे L (अंतिम), W (सप्ताह का दिन) और # (nवीं बार) का भी समर्थन करता है। स्प्रिंग के @Scheduled एनोटेशन या क्वार्टज ट्रिगर्स के लिए एक्सप्रेशन तैयार करते समय 6-फील्ड वाले क्वार्टज प्रारूप का उपयोग करें।
मैं हर 15 मिनट पर एक क्रॉन जॉब कैसे चला सकता हूँ?
*/15 * * * * अभिव्यक्ति का उपयोग करें। 'मिनट' फील्ड में दिया गया */15 का अर्थ है 'मिनट 0 से प्रत्येक 15 मिनट पर'। यह प्रत्येक घंटे के :00, :15, :30 और :45 बजे चलेगा। यदि आप इसे :05, :20, :35 और :50 बजे चलाना चाहते हैं, तो 5/15 * * * * का उपयोग करें (मिनट 5 से शुरू होकर प्रत्येक 15 मिनट पर)।
क्या मैं केवल सप्ताह के कार्यदिवसों पर सुबह 9 बजे ही एक कार्य निर्धारित कर सकता हूँ?
हाँ। 0 9 * * 1-5 का उपयोग करें। 0 का अर्थ मिनट 0 (घंटे की शुरुआत), 9 का अर्थ सुबह 9 बजे, और 1 से 5 का अर्थ सोमवार से शुक्रवार तक है (जहाँ 0/7 = रविवार, 1 = सोमवार, 5 = शुक्रवार)। यह प्रत्येक सोमवार, मंगलवार, बुधवार, गुरुवार और शुक्रवार को सुबह 9:00 बजे चलेगा।
क्रॉन एक्सप्रेशन में '?' चिह्न का क्या अर्थ होता है?
प्रश्न चिह्न (?) का अर्थ है 'कोई विशिष्ट मान नहीं' और इसका उपयोग Quartz क्रॉन में तब किया जाता है जब आपको महीने का दिन या सप्ताह का दिन या फिर केवल एक ही फ़ील्ड निर्दिष्ट करने की आवश्यकता होती है। मानक क्रॉन में, यदि दोनों दिन फ़ील्ड निर्दिष्ट किए गए हों, तो जॉब तब चलता है जब कोई भी शर्त सत्य हो (OR तर्क)। Quartz में, आपको दोनों दिन फ़ील्डों में से किसी एक में ? का उपयोग करके उस फ़ील्ड के लिए 'अनदेखा' दर्शाना चाहिए।
मैं अपनी क्रॉन एक्सप्रेशन सही है या नहीं, इसका परीक्षण कैसे कर सकता हूँ?
उपकरण की 'अगले निष्पादन समय' सुविधा वर्तमान तारीख से गणना किए गए अगले 5 से 10 निष्पादन समय दिखाती है। यदि ये आपकी अपेक्षाओं के अनुरूप हैं, तो अभिव्यक्ति सही है। वाक्यरचना जाँच के लिए आप 'वैधता जाँच' बटन का भी उपयोग कर सकते हैं। उत्पादन में तैनाती से पहले हमेशा एक स्टेजिंग वातावरण में परीक्षण करें। सामान्य त्रुटियों में शामिल हैं: महीने के दिन और सप्ताह के दिन को भ्रमित करना, यह भूल जाना कि घंटे 24-घंटे के प्रारूप में होते हैं, और चरण मानों को गलत समझना।