मेरे पास रेल ऐप पर रूबी है जिसमें मैं हर कुछ सेकंड में कुछ कोड चलाने के लिए एक रास्ता खोजने का प्रयास कर रहा हूं।रेल आवधिक कार्य
मुझे क्रॉन, या क्रॉन-जैसे कार्यान्वयन का उपयोग करके बहुत सारी जानकारी और विचार मिल गए हैं, लेकिन ये केवल मिनट के लिए सटीक हैं, और/या बाहरी उपकरणों की आवश्यकता है। मैं हर 15 सेकंड या उससे अधिक कार्य को किक करना चाहता हूं, और मैं चाहता हूं कि यह एप्लिकेशन के भीतर पूरी तरह से निहित हो (यदि ऐप बंद हो जाता है, कार्य बंद हो जाता है, और कोई बाहरी सेटअप नहीं होता है)।
इसका उपयोग कैश डेटा की पृष्ठभूमि पीढ़ी के लिए किया जा रहा है। प्रत्येक कुछ सेकंड, कार्य कुछ डेटा इकट्ठा करेगा, और उसके बाद इसे एक कैश में संग्रहीत करेगा जो सभी क्लाइंट अनुरोधों द्वारा उपयोग किया जाता है। कार्य बहुत धीमा है, इसलिए इसे पृष्ठभूमि में चलाने की आवश्यकता है और ग्राहक अनुरोधों को अवरुद्ध नहीं करना है।
मैं रूबी के लिए बिल्कुल नया हूं, लेकिन एक मजबूत पर्ल पृष्ठभूमि है, और जिस तरह से मैं इसे हल करूँगा वहां एक अंतराल टाइमर & हैंडलर बनाना होगा जो फोर्क, कोड चलाता है, और फिर पूरा होने पर बाहर निकलता है।
क्लाइंट अनुरोध को अनुकरण करने के लिए यह भी अच्छा हो सकता है और रेल नियंत्रक का कांटा स्वयं ही हो सकता है। इस तरह से मैं इसके लिए यूआरआई मारकर कार्य को बंद कर सकता हूं (हालांकि यह कार्य हर कुछ सेकंड में चल रहा है, मुझे संदेह है कि मुझे कभी भी इसकी आवश्यकता होगी, लेकिन भविष्य में इसका उपयोग हो सकता है)। हालांकि आवधिक कार्य शेड्यूलर (एक बार मेरे पास एक बार) द्वारा जो भी तरीका कहा जा रहा है, उसे नियंत्रक कॉल करने के लिए यह छोटा होगा।
मैंने केवल एक साधारण टूल बनाया जो कि रेल ऐप शुरू होने पर समय-समय पर कार्य करता है और समय-समय पर कार्य की सूची चलाता है। इसके माध्यम से प्रत्येक पाश यह देखने के लिए जांच करता है कि क्या माता-पिता अभी भी जीवित है या नहीं, अगर छोड़ देता है। – Patrick