डेवलपर टूल · क्रोंटैब जनरेटर
Cron और डेलाइट सेविंग टाइम: क्यों एक 02:30 जॉब दो बार स्किप या रन हो सकती है
· यह क्यों मायने रखती है
Cron समय क्षेत्र डेलाइट सेविंग
साल में दो बार दीवार घड़ी उछलती है, और गैप या ओवरलैप में निर्धारित Cron जॉब अप्रत्याशित रूप से व्यवहार करता है। यह पोस्ट बताती है कि विक्सी-व्युत्पन्न क्रोन क्या करते हैं, अन्य क्या करते हैं, और इसके आसपास कैसे शेड्यूल करें।
पूर्वावलोकन उम्मीदवार का गायब होना तब हो सकता है जब चयनित क्षेत्र में ऐसा कोई वॉल-क्लॉक समय न हो
जब एक चयनित समय क्षेत्र अपनी घड़ियों को आगे बढ़ाता है तो किसी तारीख को दैनिक दीवार-घड़ी का समय अनुपस्थित हो सकता है। ToolAcre उस मामले का प्रतिनिधित्व करता है, जो अस्तित्वहीन स्थानीय मिनट के लिए कोई तत्काल नहीं लौटाता है और इसे अगली-रन सूची में छोड़ देता है। अभिव्यक्ति वैध बनी हुई है; एक कैलेंडर उम्मीदवार को उस क्षेत्र में वास्तविक क्षण में परिवर्तित नहीं किया जा सकता है।
यह व्यवहार `wallClockToEpoch` में कार्यान्वित किया जाता है, जो प्रस्तावित स्थानीय दिनांक और समय को परिवर्तित करता है, परिणाम को उसी क्षेत्र में वापस प्रारूपित करता है और प्रत्येक घटक की तुलना करता है। बेमेल परिणाम शून्य हो जाता है। `nextRuns` अशक्त उम्मीदवारों को अनदेखा करता है और अपनी खोज जारी रखता है, एक मनगढ़ंत पास के समय को प्रदर्शित होने से रोकता है जैसे कि यह बिल्कुल शेड्यूल से मेल खाता हो।
दो घटनाएँ - वसंत आगे की ओर जो एक घंटे को हटा देता है और शरद ऋतु पीछे की ओर गिरती है जो एक को दोहराती है
घड़ी में बदलाव से दो वैचारिक मामले बनते हैं: दीवार के समय के साथ एक आगे का अंतर जो कभी नहीं होता है, और एक पिछड़ा ओवरलैप जहां कुछ लेबल एक से अधिक बार आते हैं। रिपॉजिटरी में आगे के परिवर्तन के दौरान दैनिक स्थानीय घंटे को बनाए रखने और अस्तित्वहीन वसंत समय को छोड़ने के लिए परीक्षण होते हैं। इसमें संपूर्ण ओवरलैप-पॉलिसी परीक्षण सूट शामिल नहीं है।
वह साक्ष्य सीमा महत्वपूर्ण है क्योंकि शेड्यूलर कार्यान्वयन अलग-अलग विकल्प चुन सकता है। यह आलेख ब्राउज़र पूर्वावलोकन एल्गोरिदम का वर्णन करता है, सार्वभौमिक डेमॉन व्यवहार का नहीं। क्लॉक ट्रांज़िशन के दौरान आवर्ती कार्य पर भरोसा करने से पहले, निष्पादन वादे में पूर्वावलोकन को बढ़ावा देने के बजाय लक्ष्य होस्ट पर वास्तविक शेड्यूलर को पढ़ें और परीक्षण करें।
ToolAcre अस्तित्वहीन स्थानीय समय को छोड़ देता है; यह प्रत्येक विक्सी-व्युत्पन्न डेमॉन नीति का मॉडल नहीं बनाता है
कार्यपुस्तिका में दावा किया गया है कि विशेष विक्सी-व्युत्पन्न डेमॉन एक छलांग के बाद छोड़े गए कार्यों को चलाते हैं और डुप्लिकेट को दबा देते हैं। ToolAcre अपने पूर्वावलोकन कोड में ऐसा कुछ नहीं करता है: यह उस उम्मीदवार को छोड़ देता है जिसके स्थानीय घटक राउंड-ट्रिप नहीं कर सकते हैं। कोई डेमॉन पैकेज लागू नहीं किया गया है, और कोई कैच-अप नीति तैयार नहीं की गई है। इसलिए उन परिचालन दावों को दोहराने के बजाय सही किया जाता है।
परीक्षण किया गया लंदन उदाहरण मार्च 2026 परिवर्तन के आसपास 01:30 की खोज करता है। क्योंकि वह स्थानीय मिनट संक्रमण तिथि पर मौजूद नहीं है, लौटाए गए दिन निम्नलिखित वैध तिथियां हैं। यह मार्ग के स्वयं के सूची व्यवहार को सिद्ध करता है। यह स्थापित नहीं करता है कि एक अलग से स्थापित Cron प्रक्रिया पहले से सहेजी गई लाइन के साथ क्या करती है।
बाहरी डेमॉन में वाइल्डकार्ड शेड्यूलिंग व्यवहार रिपॉजिटरी साक्ष्य के बाहर है
पार्सर द्वारा प्रत्येक अनुमत मान में सितारों का विस्तार किया जाता है, लेकिन बाद में दीवार-घड़ी रूपांतरण अभी भी यह तय करता है कि कोई विशेष दिनांक-समय एक पल में मैप करता है या नहीं। ToolAcre में "वाइल्डकार्ड जॉब्स" के लिए कोई अलग बाहरी-डेमॉन नियम नहीं है। सभी उम्मीदवार समान कैलेंडर खोज और क्षेत्र रूपांतरण कोड के माध्यम से यात्रा करते हैं।
विवरण पूरी तरह से व्याकरणिक रहते हैं: `* * * * *` को हर मिनट के रूप में पढ़ा जाता है, जबकि एक चरणबद्ध मिनट फ़ील्ड को चरणबद्ध शब्द प्राप्त होते हैं। यह वाक्य संक्रमण नीति का वर्णन नहीं करता है। टूल के परिकलित उदाहरणों के लिए अगली-रन सूची का उपयोग करें, और अकेले गद्य से कैच-अप, पुनः प्रयास या डुप्लिकेट-दमन गारंटी का अनुमान न लगाएं।
इस ब्राउज़र पूर्वावलोकन से अन्य कार्यान्वयनों का अनुमान नहीं लगाया गया है
ज़ोन कार्यान्वयन ब्राउज़र या नोड रनटाइम द्वारा उजागर किए गए `Intl.DateTimeFormat` डेटा पर निर्भर करता है। ToolAcre आपूर्ति किए गए IANA ज़ोन नाम को मान्य करता है, उपलब्ध होने पर इंजन की समर्थित सूची प्रदान करता है और इसमें UTC शामिल होता है। यह बिजीबॉक्स, कंटेनर ऑर्केस्ट्रेटर या क्लाउड Cron उत्पादों का निरीक्षण नहीं करता है।
जब कोई अन्य अनुसूचक असहमत हो, तो उसे बोली और रनटाइम प्रश्न के रूप में मानें। इसके संस्करण, ज़ोन कॉन्फ़िगरेशन और देखे गए संक्रमण व्यवहार को रिकॉर्ड करें। ब्राउज़र पूर्वावलोकन अभी भी एक पारदर्शी तुलना के रूप में उपयोगी है, लेकिन इसका कोड यह उत्तर नहीं दे सकता है कि कोई अन्य सेवा कौन सी नीति लागू करती है या क्या वह सेवा छूटे हुए कार्य का पुनः प्रयास करती है।
व्यावहारिक उदाहरण: एक वॉल टाइम चुनें और ToolAcre के परिकलित उम्मीदवारों का निरीक्षण करें
एक सुरक्षित कार्य पद्धति तैनाती क्षेत्र का चयन करना, प्रस्तावित दैनिक अभिव्यक्ति दर्ज करना और उस वातावरण में ज्ञात अगले संक्रमण के आसपास की तारीखों का निरीक्षण करना है। यदि कोई आवश्यक उम्मीदवार अनुपस्थित है, तो कोई अन्य वॉल टाइम या शेड्यूलर नीति चुनें जिसे लक्ष्य स्पष्ट रूप से दस्तावेजित करता हो। समय बदलने के बाद पूर्वावलोकन पुनः चलाएँ।
स्रोत में 02:30 पर एक प्रीसेट शामिल है, लेकिन प्रीसेट एक उदाहरण है, कोई सार्वभौमिक अनुशंसा नहीं। इसकी वैधता चयनित कैलेंडर और क्षेत्र पर निर्भर करती है। ToolAcre की पांच-परिणाम विंडो दूर के संक्रमण तक नहीं फैल सकती है, इसलिए कार्यान्वयन व्यवहार का ऑडिट करते समय परीक्षणों में एक उपयुक्त प्रारंभिक संदर्भ चुनें।
ज़ोन चयन इस पूर्वावलोकन का हिस्सा है और यहां केवल टूल व्यवहार के रूप में चर्चा की गई है
कार्यपुस्तिका के पृथक्करण के विपरीत, ज़ोन प्रबंधन सीधे इस टूल के पूर्वावलोकन का हिस्सा है। पैनल "अगला रन दिखाएँ" पूछता है और चेतावनी देता है कि मशीन चलाने वाला Cron रीडर से भिन्न क्षेत्र का उपयोग कर सकता है। ज़ोन चुनने से अभिव्यक्ति के वॉल-क्लॉक फ़ील्ड को संरक्षित करते हुए परिणामी क्षण बदल जाते हैं।
चयन केवल ब्राउज़र गणना को कॉन्फ़िगर करता है। यह टाइमज़ोन निर्देश नहीं लिखता है, सर्वर को अपडेट नहीं करता है या कॉपी किए गए अभिव्यक्ति में विकल्प को एम्बेड नहीं करता है। आसन्न परिनियोजन दस्तावेज़ में इच्छित क्षेत्र को संरक्षित करें, फिर उस वातावरण के लिए सिद्ध तंत्र के माध्यम से वास्तविक शेड्यूलर को कॉन्फ़िगर करें।
टेकअवे: सूची को निष्पादन गारंटी के रूप में माने बिना इच्छित क्षेत्र में पूर्वावलोकन करें
अगली-रन सूची पांच क्षेत्रों से एक मॉडल आउटपुट है, एक प्रारंभिक क्षण, कैलेंडर अंकगणित और ब्राउज़र ज़ोन डेटा। यह अस्तित्वहीन समय और आकस्मिक घंटे की शिफ्ट का पता लगाने के लिए मूल्यवान है। यह न तो कोई डेमॉन ट्रेस है और न ही इस बात का सबूत है कि किसी कमांड को निष्पादित किया गया है।
जोखिमपूर्ण दीवार समय की पहचान करने के लिए पूर्वावलोकन का उपयोग करें, फिर संक्रमण सीमा पर लक्ष्य अनुसूचक को सत्यापित करें। ToolAcre का बचाव योग्य वादा संकीर्ण है: दैनिक नौकरियां चयनित स्थानीय घंटे पर रहती हैं जब वह समय मौजूद होता है, और गैर-मौजूद स्थानीय उम्मीदवारों को छोड़ दिया जाता है। इससे आगे की हर चीज़ तैनात प्रणाली से संबंधित है।