2009-10-28 14 views
7

मैं पृष्ठभूमि कार्य को प्रबंधित करने के लिए देरी नौकरी का उपयोग कर रहा हूं।
हालांकि मेरे पास कुछ कार्य हैं जिन्हें नियमित अंतराल पर निष्पादित करने की आवश्यकता होती है। उदाहरण के लिए हर घंटे, हर दिन या हर सप्ताह।नियमित देरी नौकरियां

अभी के लिए, जब मैं काम पर अमल, मैं एक नया एक के बाद एक दिन/सप्ताह/माह में निष्पादित करने के लिए पैदा करते हैं।

हालांकि मुझे यह वास्तव में पसंद नहीं है। यदि किसी भी कारण से, कार्य पूरी तरह से निष्पादित नहीं होता है, तो हम अगला नहीं बनाते हैं और हम कार्य को निष्पादित कर सकते हैं।

कैसे क्या आप वाकई अपने नियमित कार्यों की सूची सही रहता है होना करने के लिए अपने पटरियों क्षुधा में है कि (देरी काम के साथ) चीजों की तरह प्रबंधित करते हैं?

उत्तर

5

आप क्रॉन के लिए उपयोग किया है, मैं अत्यधिक की सलाह देते हैं जब भी

http://github.com/javan/whenever

आप यह निर्दिष्ट क्या आप चलाने के लिए और मृत सरल माणिक में क्या आवृत्ति पर करना चाहते हैं, और जब भी आपूर्ति एक में बदलने के लिए कार्य रेक crontab और अपने सिस्टम के crontab अद्यतन करने के लिए।

आप (जैसे मैं नहीं करते हैं, क्योंकि हम Heroku पर हैं) लगातार क्रॉन के लिए पहुँच नहीं है, तो डीजे जाने का रास्ता है।

आपके पास कुछ विकल्प हैं।

  1. जो भी आप कर रहे हैं वह करें। डीजे प्रत्येक कार्य को एक निश्चित संख्या में दोबारा प्रयास करेगा, इसलिए आपके पास कुछ उदारता है

  2. कोड को एक सुनिश्चित ब्लॉक में अगली डीजे नौकरी बनाता है, यह सुनिश्चित करने के लिए कि यह अपवाद या अन्य बुरी घटना के बाद भी बनाया गया हो

  3. एक और डीजे है कि समय-समय पर चलाता बनाएं, सुनिश्चित करें कि उचित डीजे मौजूद बनाने के लिए जाँच करता है, और उन्हें बनाता है, तो वे नहीं है। बेशक, यह अन्य विकल्पों के रूप में त्रुटि प्रवण है, क्योंकि मॉनिटर और वास्तविक डीजे दोनों एक ही env में चल रहे हैं, लेकिन यह कुछ है।

+0

अच्छी बात, जब भी। कुछ कार्यों के साथ जब मैं कुछ बदलता हूं तो मुझे क्रोंटैब को फिर से लोड करने की अनुमति मिलती है (मुझे गतिशील रूप से कार्यों को बदलने की आवश्यकता होती है)। धन्यवाद :) –

1

क्या कोई विशेष कारण है कि आप इस प्रकार की चीजों के लिए क्रॉन का उपयोग क्यों नहीं करेंगे? या शायद rufus-scheduler जैसे कुछ अधिक rubyish, जो काफी easy to use है और बहुत विश्वसनीय है।

आप कतार की जरूरत नहीं है, इन उपकरणों जाने के लिए एक तरह से कर रहे हैं, मुझे लगता है।

+1

खैर मैं पहले से ही देरी काम deamon है। और मैं एक दूसरा लॉन्च करने से बचना चाहता हूं। –

+0

आपको रूफस-शेड्यूलर के साथ कोई नया डिमन लॉन्च करने की आवश्यकता नहीं है। यह चलाने के लिए नौकरियों की जांच के लिए सरल लूप या EventMachine का उपयोग करता है। क्रॉन एक डिमन है, लेकिन आपको आमतौर पर इसकी आवश्यकता होती है और वैसे भी चलती है। –

संबंधित मुद्दे