2012-03-13 15 views
12

मैं पृष्ठभूमि में स्क्रिप्ट चलाने के लिए सबसे अच्छा तरीका खोजने का प्रयास कर रहा हूं। मैं चारों ओर देख रहा हूं और बहुत सारे विकल्प पाये हैं, लेकिन पिछले कुछ वर्षों में कई/अधिक निष्क्रिय हो गए हैं। मुझे अपनी जरूरतों का वर्णन करने दो।सर्वश्रेष्ठ वर्तमान रेल पृष्ठभूमि कार्य विधि?

रेल ऐप मूल रूप से यह निर्धारित करने के लिए एक फ्रंट एंड है कि ये स्क्रिप्ट कब और कैसे चलेंगी। स्क्रिप्ट रन चलाते हैं और रिपोर्ट जेनरेट करते हैं और ईमेल अलर्ट भेजते हैं। तो उपयोगकर्ता प्रारंभ समय को कॉन्फ़िगर करने में सक्षम होना चाहिए और कितनी बार ये स्क्रिप्ट गतिशील रूप से चलती हैं। डीबी में परिणामी रिपोर्टों को सहेजने के लिए स्क्रिप्ट को रेल वातावरण में पहुंच होनी चाहिए।

बस विकल्पों के असंख्य से सबसे अच्छी विधि का पता लगाने की कोशिश कर रहा है।

+0

सक्रिय नौकरियों के बारे में कैसे? मैंने बस इसके बारे में पढ़ा लेकिन आशाजनक लग रहा है। – akostadinov

उत्तर

12

मुझे लगता है कि आप पृष्ठभूमि नौकरी क्यूइंग सिस्टम की तलाश में हैं।

इसके लिए, आप या तो resque या delayed_job देख रहे हैं। भविष्य में कुछ बिंदुओं पर समर्थन शेड्यूलिंग कार्य दोनों - देरी_बॉज यह मूल रूप से करता है, जबकि रेस्क के लिए resque_scheduler नामक प्लगइन है।

आप पृष्ठभूमि में नौकरियों को आपके द्वारा निर्दिष्ट पैरामीटर के साथ संलग्न करेंगे, और फिर आपके द्वारा चुने गए समय पर उन्हें निष्पादित किया जाएगा। आप अनिश्चित काल या निश्चित समय के लिए नौकरियों को सेट कर सकते हैं (कम से कम रेज्यू-शेड्यूलर के साथ, देरी_बॉब के बारे में निश्चित नहीं)।

देरी_बॉज सेट करना आसान है क्योंकि यह डेटाबेस में सबकुछ बचाता है। रेस्क अधिक मजबूत है लेकिन आपको अपने ढेर में रेडिस की आवश्यकता होती है - लेकिन यदि आप पहले से ही करते हैं तो यह आपकी समस्या के लिए आदर्श समाधान है।

6

जब भी https://github.com/javan/whenever पर मणि पर नज़र डालें।

यह आपको क्रॉन नौकरियों जैसे कार्यों को शेड्यूल करने की अनुमति देता है।

लिनक्स के तहत बहुत अच्छी तरह से काम करता है, और अंतिम प्रतिबद्धता 14 दिन पहले थी। मेरे एक दोस्त ने इसे एक परियोजना में इस्तेमाल किया और इससे काफी संतुष्ट था।

संपादित करें: मणि delayed_job पर भी एक नज़र डालें, यह पृष्ठभूमि में लंबे कार्यों को निष्पादित करने के लिए अच्छा है। केवल अन्य कार्यों को शुरू करने के लिए क्रॉन नौकरी बनाते समय उपयोगी।

+0

मैंने इसे देखा, लेकिन हो सकता है कि मैं समझ नहीं पा रहा हूं कि इसका उपयोग कैसे किया जाए, ऐसा लगता है कि आप static.rb फ़ाइल में अपने कार्यों को स्थिर रूप से बनाते हैं। तो क्या मैं रन टाइम पर अपनी नौकरियों को संशोधित कर सकता हूं? असल में, मुझे यह चाहिए, लेकिन यह उपयोगकर्ता द्वारा मेरे रेल ऐप से कॉन्फ़िगर करने योग्य होना चाहता है। –

+0

सरल समाधान उपयोगकर्ता की निर्धारित नौकरियों की न्यूनतम अवधि के बारे में सोचना होगा। यदि हर घंटे लंबित नौकरियों को निष्पादित करने के लिए आपकी ज़रूरतों के लिए पर्याप्त होगा, तो आप हर घंटे, या हर दस मिनट चलाने के लिए एक क्रॉन नौकरी कर सकते हैं, लंबित नौकरियों की सूची में फिर से चल सकते हैं, जो कि होना चाहिए। 'मेटाप्रोग्रामैटिकली' को क्रॉन्टाब या ऐसा कुछ बनाने की कोशिश करने से कहीं अधिक सरल है। अगर यह मामला नहीं है, तो शुभकामनाएँ :) – Castilho

12

मैंने हाल ही में Sidekiq के बारे में सीखा, और मुझे लगता है कि यह वास्तव में बहुत अच्छा है।

इसके बारे में एक रेलस्कास्ट भी है - Sidekiq

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