Cron एक्सप्रेशन पार्सर
एक cron एक्सप्रेशन पेस्ट करें और उसकी अगली 5 रन टाइम्स के प्रीव्यू के साथ एक प्लेन-लैंग्वेज एक्सप्लेनेशन पाएं।
स्टैंडर्ड 5-फ़ील्ड फ़ॉर्मैट: मिनट घंटा दिन-का-महीना महीना दिन-का-हफ़्ता।
5 फ़ील्ड्स
मिनट, घंटा, दिन-का-महीना, महीना, दिन-का-हफ़्ता।
* का मतलब है "हर वैल्यू।" */5 का मतलब है "हर 5 यूनिट।" 1-5 एक रेंज है। 1,3,5 एक लिस्ट है। दिन-का-हफ़्ता 0 (रविवार) से 6 (शनिवार) तक चलता है।
एक क्विक उदाहरण
*/15 9-17 * * 1-5 का मतलब है "हर 15 मिनट में, सुबह 9 बजे से शाम 5 बजे के बीच, सोमवार से शुक्रवार तक।" ज़्यादा कॉमन शेड्यूल्स के लिए प्रीसेट्स ड्रॉपडाउन आज़माएं।
यह कैसे काम करता है
पार्सर आपके एक्सप्रेशन को उसके 5 फ़ील्ड्स में बांटता है और हर एक को अनुमत वैल्यूज़ के एक स्पष्ट सेट में एक्सपैंड करता है: मिनट फ़ील्ड में */15 सेट {0, 15, 30, 45} बन जाता है, दिन-का-हफ़्ता में 1-5 {1, 2, 3, 4, 5} बन जाता है, और 1,3,5 जैसी लिस्ट्स को यूनियन किया जाता है। हर वैल्यू को एक्सपैंड करते समय रेंज-चेक किया जाता है, इसीलिए 61 * * * * जैसा टाइपो एक ऐसा शेड्यूल चुपचाप बनाने के बजाय जो कभी फ़ायर ही न हो, तुरंत फ़ेल हो जाता है, और एक मैसेज दिखाता है जो सटीक फ़ील्ड और उसकी अपेक्षित रेंज बताता है।
"अगली 5 रन" लिस्ट ब्रूट फ़ोर्स से कैलकुलेट होती है, और यह एक फ़ीचर है: अगले पूरे मिनट से शुरू करके, कोड एक बार में एक मिनट आगे बढ़ता है (एक साल तक, लगभग 527,000 चेक्स, जिसमें कुछ मिलीसेकंड लगते हैं) और हर कैंडिडेट मिनट को एक्सपैंडेड सेट्स के खिलाफ़ टेस्ट करता है। कैलकुलेट करने के बजाय सिम्युलेट करने का एक उपयोगी साइड इफ़ेक्ट: सिंटैक्टिकली वैलिड लेकिन कभी फ़ायर न होने वाले एक्सप्रेशन, जैसे 0 0 30 2 * (30 फ़रवरी), एरर नहीं होते, वे बस "अगले साल में कोई मैचिंग रन नहीं मिला" के साथ वापस आते हैं। अगर आपको यह मैसेज दिखे, तो आपका एक्सप्रेशन ठीक से पार्स हो जाता है लेकिन एक ऐसी तारीख़ बताता है जो मौजूद नहीं है या एक साल से ज़्यादा दूर है।
सारा डेट मैथ ब्राउज़र के Date ऑब्जेक्ट को आपकी लोकल टाइमज़ोन में इस्तेमाल करता है, और यह सब इस पेज के JavaScript में चलता है। डेवटूल्स का Network टैब चेक करें: एक्सप्रेशन टाइप करते समय कोई रिक्वेस्ट नहीं होती, इसलिए आपके इंफ्रास्ट्रक्चर के शेड्यूल्स के बारे में कुछ भी आपकी मशीन से बाहर नहीं जाता।