2012-07-01 13 views
6

मैं रेल में पृष्ठभूमि नौकरियों को संसाधित करने के लिए साइडकीक मणि का उपयोग कर रहा हूं। कुछ कारणों से, नौकरी थोड़ी देर के बाद ही लटकती है - प्रक्रिया या तो प्रतिक्रियाहीन हो जाती है, top पर दिखाई देती है लेकिन बहुत कुछ नहीं, या रहस्यमय तरीके से गायब हो जाती है, त्रुटियों के बिना (airbrake.io को कुछ भी नहीं बताया जाता है)।लंबे समय से चलने वाली साइडकीक नौकरियां मरती रहती हैं

क्या किसी के पास इसका अनुभव है?

उत्तर

7

TTIN संकेत का उपयोग करें प्रक्रिया में सभी धागे की एक नामों को प्राप्त करने, ताकि आप यह पता लगाने जहां कार्यकर्ताओं अटक कर रहे हैं कर सकते हैं।

https://github.com/mperham/sidekiq/wiki/Signals

+1

आप इसका उपयोग कैसे करते हैं? – Avishai

+4

'kill -TTIN # {worker_pid}' –

1

मैं इस अनुभव किया है, और एक समाधान/मूल कारण नहीं मिली है।

मैं इस सफाई से हल नहीं किया जा सकता है, लेकिन एक हैक के साथ आया था।

मैं अपने Sidekiq प्रक्रियाओं की निगरानी के लिए, और अगर एक फ़ाइल बदल उन्हें पुनः आरंभ करने की भगवान से कॉन्फ़िगर किया गया।

मैं तो सेटअप एक क्रॉन जॉब कि हर 5 मिनट कि एक कतार के लिए सभी मौजूदा Sidekiq कार्यकर्ताओं की जाँच की गई। यदि श्रमिकों का एक निश्चित% < = अतीत में 5 मिनट का प्रारंभ समय था, तो इसका मतलब था कि उन श्रमिकों को किसी कारण से लटका दिया गया था। अगर ऐसा हुआ, तो मैंने एक फाइल को छुआ, जिसने भगवान को साइडकीक को फिर से शुरू किया। मेरे लिए, 5 मिनट आदर्श था लेकिन यह इस बात पर निर्भर करता है कि आपकी नौकरियां आम तौर पर कितनी देर तक चलती हैं।

यही एक रास्ता है मैं मैन्युअल रूप से हर घंटे उन पर जाँच, और यह अपने आप को पुन: प्रारंभ बिना Sidekiq नौकरियों फांसी को हल कर सकता है।

+2

क्या आप इस स्क्रिप्ट को साझा कर सकते हैं? –