जेंकिन में हर घंटे एक नौकरी निर्धारित करने की आवश्यकता है


17

आई एम न्यू टू जेनकिन्स। मेरे पास एक काम है जो मुझे हर 1 घंटे के लिए निर्धारित करना है।

मै इस्तेमाल कर रहा हूँ

* */1 * * * 

लेकिन यह प्रभावी ढंग से काम नहीं कर रहा है।

कृपया कोई अन्य समाधान प्रदान करें।


3
आपको समझाना चाहिए कि क्या "लेकिन यह प्रभावी रूप से काम नहीं कर रहा है।" माध्यम। और अपने distro और cronttab प्रविष्टियों में जोड़ने
Sathyajith भट्ट

उपयोग @hourlyया0 * * * *
रेनू चंद्रन चिंगथ

धन्यवाद। कृपया सिंटैक्स का उल्लेख करें, अगर मैं हर 3 घंटे का समय निर्धारित करना चाहता हूं।
अजय

उपयोग करें: H / 60 * * * *
Eyal Sooliman

जवाबों:


32

जेनकिन्स ने यहां बताए अनुसार क्रोन एक्सप्रेशन का उपयोग किया है

हर घंटे का समय निर्धारित करने के लिए, फिर आप रख सकते हैं

0 * * * *

फिर आपकी नौकरी हर घंटे (07:00, 08:00, 09:00 और इसी तरह) निष्पादित की जाएगी।

अपडेट करें

अपने मूल विन्यास, वाक्य रचना पर स्पष्टीकरण के रूप में

* */1 * * *

हर मिनट में काम को अंजाम देगा।

अद्यतन २

जैसा कि टिप्पणी में अनुरोध किया गया है, यहां हर 3 घंटे में इसे निर्धारित करने के लिए वाक्यविन्यास है

0 */3 * * *

वाक्यविन्यास का */nअर्थ है कि नौकरियां हर nघंटे निर्धारित की जाएंगी


उत्तर के लिए धन्यवाद। यह ठीक काम कर रहा है। लेकिन मेरे काम को निष्पादित करने में एक घंटे से अधिक समय लग रहा है। उदाहरण के लिए अगर मैं हर 3 घंटे के लिए इस नौकरी को शेड्यूल करना चाहता हूं तो वाक्य रचना क्या होगी। कृपया साझा करें।
अजय

मेरे अद्यतन उत्तर की जाँच करें :)
masegaloeh

@ अजय यदि यह उत्तर आपकी समस्या के लिए काम करते हैं, तो कृपया इस उत्तर को स्वीकार करने के लिए विचार करें :)
masegaloeh

14

जेनकिंस इस तरह से सुझाव देते हैं:

H * * * *

2
एक प्रश्न के अन्य उत्तर के रूप में एक ही उत्तर जो 1+ वर्ष पुराना है।
जेकगोल्ड

यह एक और उत्तर को दोहराता है और कोई नई सामग्री नहीं जोड़ता है। कृपया जवाब न दें जब तक कि आपके पास योगदान देने के लिए वास्तव में कुछ नया न हो।
DavidPostill

4
इस दृष्टिकोण का लाभ यह है कि जेनकिन्स एक कतार में कार्यों का प्रबंधन करेगा। शायद किसी और के पास पहले से ही जवाब था लेकिन यह अभी भी उपयोगी है। अगर यह उपयोगी है तो कठोर क्यों? 20 पसंद के साथ जवाब इतना अच्छा नहीं है .... बा
जुआन इसज़ा

मुझे @juanIsaza के साथ जाना है। यह डुप्लिकेट नहीं है बल्कि वास्तव में एक बेहतर उत्तर है। जेनकिंस स्पष्ट रूप Hसे हार्डकोडेड वैल्यूज़ के बजाय उपयोग को प्राथमिकता देने का सुझाव देते हैं
derHugo

9

मुझे पता है कि यह एक पुराना धागा है लेकिन मैं जवाब दे रहा हूं क्योंकि जाहिर है कि लोग अभी भी यहां उतरते हैं।

शीर्ष उत्तर का अब उपयोग नहीं किया जाना चाहिए।

जेनकिंस ने एक मूल्य पेश किया H

यह फ़ील्ड क्रोन के सिंटैक्स का अनुसरण करता है (मामूली अंतर के साथ)। विशेष रूप से, प्रत्येक पंक्ति में 5 क्षेत्र होते हैं जिन्हें TAB या व्हाट्सएप द्वारा अलग किया जाता है:

मिनट चार डोम महीने

  • मिनट मिनट (0–59) के भीतर
  • दिन का घंटा (0–23)
  • DOM महीने का दिन (1-31)
  • महीना (1-12)
  • सप्ताह का दिन (0–7) जहां 0 और 7 रविवार हैं।

एक क्षेत्र के लिए कई मान निर्दिष्ट करने के लिए, निम्नलिखित ऑपरेटर उपलब्ध हैं। पूर्वता के क्रम में,

  • * सभी मान्य मान निर्दिष्ट करता है
  • M-N मूल्यों की एक श्रृंखला निर्दिष्ट करता है
  • M-N/Xया */Xएक्स के अंतराल द्वारा निर्दिष्ट सीमा या संपूर्ण मान्य सीमा के माध्यम से कदम
  • A,B,...,Z कई मूल्यों की गणना करता है

सिस्टम पर लोड का उत्पादन करने के लिए समय-समय पर निर्धारित कार्यों की अनुमति देने के लिए, जहां भी संभव हो, प्रतीक एच ("हैश" के लिए) का उपयोग किया जाना चाहिए। उदाहरण के लिए, एक दर्जन दैनिक नौकरियों के लिए 0 0 * * * का उपयोग करना आधी रात को एक बड़ी कील का कारण होगा। इसके विपरीत, HH * * * का उपयोग करना अभी भी दिन में एक बार प्रत्येक कार्य को निष्पादित करेगा, लेकिन सभी एक ही समय में सीमित संसाधनों का उपयोग करके बेहतर नहीं होगा।

H सिंबल का उपयोग रेंज के साथ किया जा सकता है। उदाहरण के लिए, HH (4-7) * * * का अर्थ है, कुछ समय 12:00 पूर्वाह्न (मध्यरात्रि) से 7:59 AM के बीच। आप एच के साथ या बिना सीमाओं के साथ कदम अंतराल का भी उपयोग कर सकते हैं।

H प्रतीक को एक सीमा पर यादृच्छिक मान के रूप में माना जा सकता है, लेकिन यह वास्तव में एक काम का नाम है, न कि एक यादृच्छिक कार्य, ताकि किसी भी परियोजना के लिए मूल्य स्थिर रहे।

महीने के क्षेत्र के दिन के लिए सावधान रहें कि, चर महीने की लंबाई के कारण, छोटे चक्र जैसे कि * / 3 या H / 3, अधिकांश महीनों के अंत तक लगातार काम नहीं करेंगे। उदाहरण के लिए, * / 3 1, 4,… लंबे महीने के 31 वें दिन चलेगा, फिर अगले महीने के अगले दिन। हैश हमेशा 1-28 रेंज में चुने जाते हैं, इसलिए एच / 3 एक महीने के अंत में 3 से 6 दिनों के बीच के अंतराल का उत्पादन करेगा। (लंबे चक्रों में असंगत लंबाई भी होगी लेकिन प्रभाव अपेक्षाकृत कम ध्यान देने योग्य हो सकता है।)

तो एक घंटे में एक बार निर्माण का सही उत्तर है

H * * * *

हर 3 घंटे के लिए

H H/3 * * *

के बीच का अंतर *और के Hरूप में भी समझाया जा सकता है

  • *हर करने के लिए अनुवाद
  • Hकिसी के लिए अनुवाद

इसलिए उदा

* * * * *

अनुवाद: हर मिनट, हर घंटे, महीने के हर दिन, हर महीने का निर्माण, कोई फर्क नहीं पड़ता कि सप्ताह का दिन क्या है।

H * * * *

अनुवाद: हर घंटे (x) का एक बार निर्माण करें , इससे कोई फर्क नहीं पड़ता कि यह कितना सटीक मिनट है (x: 00 और x के बीच कोई भी मिनट हो सकता है:)

H H * * *

अनुवाद: हर दिन एक बार निर्माण , कोई फर्क नहीं पड़ता कि यह किस समय है (किसी भी मिनट और किसी भी समय 00:00 और 23:59 के बीच हो सकता है)


Hहार्डकोड किए गए समय मानों के बजाय आपको इसका उपयोग क्यों करना चाहिए, इसका कारण भी पहले जैसा बताया गया है

यदि आप 100 नौकरियों के साथ कॉन्फ़िगर किया गया है

0 0 * * *

वे सभी एक ही समय में शुरू करने का प्रयास करेंगे, उदाहरण के लिए बहुत सारे पोल और आधी रात को ट्रैफ़िक खींचना।

यदि आपके पास उनके बजाय सभी के साथ कॉन्फ़िगर किया गया है

H H * * *

वे सभी एक दिन में एक बार बनाए जाएंगे, लेकिन एक ही समय में नहीं बल्कि पूरे दिन वितरित किए जाएंगे।


समय सीमा तय करें

आप समय सीमा जैसे उदाहरणों का उपयोग करके बेहतर ढंग से योजनाबद्ध तरीके से योजना बना सकते हैं

H H(18-23) * * *

सभी नौकरियां हर दिन 18:00 से 23:59 के बीच किसी भी समय बनाई जाएंगी।


आधी रात को अनुसूची समय सीमा पार

यह भी संभव है कि नौकरियों को आधी रात को पार करने के लिए शेड्यूल किया जाए।

लेकिन चूंकि क्रोन आमतौर पर इसकी अनुमति नहीं देता है इसलिए आप शिफ्ट टाइमज़ोन का उपयोग करके एक चाल का उपयोग कर सकते हैं।

उदाहरण के लिए, मैं उस समय के MEZ में रह रहा हूं जो GMT + 1 है और मैं 19:00 बजे से सुबह 5:00 बजे के बीच सभी नौकरियों का निर्माण करना चाहता हूं। ऐसा करने के लिए कि मैं 5 घंटे का उपयोग करके अपना पूरा समयक्षेत्र शिफ्ट कर दूं

TZ=Etc/GMT+6

14:00 (-> +5 = 19:00 बजे) और 23:59 पर समाप्त होने पर (-> +5 = 4:59 बजे) से पहले मैं एक शिफ्ट रेंज का उपयोग करता हूं

H H(14-23) * * *

-1
* */1 * * *

सही है यह हर घंटे चलता है

एच फ़ंक्शन का उपयोग करने का प्रयास करें ताकि सभी नौकरी svn के लिए एक ही समय में मतदान न करें

H H/1 * * *

यह जादू करना चाहिए। यदि नौकरी समाप्त होने में अधिक समय लगता है या आप ट्रिगर कार्यक्षमता का निर्माण कर रहे हैं। या तो समय बढ़ाएं या पिछले निर्माण समाप्त होने तक निर्माण को रोकने के लिए जेनकिन प्लगिन का उपयोग करें।

https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin


पहला मिनट हर मिनट 1:00 से 2:00 बजे के बीच चलता है, है ना?
एरिक वांग

@ ईराकवांग: नहीं। यह * * * * *हर मिनट चल रहा है। एक निश्चित सीमा के बीच में चलाने के लिए आप इसका इस्तेमाल करते हैं जैसे * 1-2 * * *- यह हर मिनट 1:00 बजे से 1:59 बजे के बीच चलता है
derHugo

@derHugo तुम्हारा मतलब है * * 1-2 * *?
एरिक वांग

1
@ EricWang नहीं मेरा मतलब है * 1-2 * * *। पहली स्थिति के लिए है Minute of our, दूसरे के लिए hour of day, तीसरा एक day of month, चौथा month of yearऔर पांचवां day of week(विशेष मामलों में यह एक छठे को भी अनुमति देता है year)। तो आपकी लाइन * * 1-2 * *"हर मिनट, हर घंटे, हर महीने का पहला और दूसरा दिन और सप्ताह का कोई भी दिन।
अनुवाद करती है

1
अंतर जो इस जवाब याद के लेखक वह यह है कि *करने के लिए अनुवाद everyकरते समय Hअनुवाद है any। इसलिए * * * * *हर मिनट का H * * * *मतलब है , हर घंटे में एक बार निर्माण करना , लेकिन मुझे सटीक मिनट की परवाह नहीं है (किसी रेंज द्वारा 0-59 के बीच कहीं भी हो सकता है) और H H * * *इसका मतलब प्रति दिन एक बार निर्माण होता है लेकिन मुझे इस बात की परवाह नहीं है कि क्या समय है।
derHugo

-5

वाक्य रचना है:


MINUTE  Minutes within the hour (0-59)
HOUR    The hour of the day (0-23)
DOM     The day of the month (1-31)
MONTH   The month (1-12)
DOW     The day of the week (0-7) where 0 and 7 are Sunday.

यदि आप हर 3 घंटे के लिए शेड्यूल करना चाहते हैं, तो वाक्यविन्यास देखना चाहिए:

* 3 * * * *

4
यह हर दिन 3 एएम के लिए शेड्यूल करेगा, और हर 3 घंटे पर नहीं
दोपहर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.