2014-07-01 19 views
12

मेरे कोड में कुछ कार्यों को निष्पादित करने में लंबा और लंबा समय लग रहा था।सेलेरी: समवर्ती और आरक्षित कार्यों के साथ कार्यकर्ता केवल 1 कार्य

निरीक्षण पर मैंने देखा कि हालांकि मेरे पास मेरे कार्यकर्ता नोड को 6 कार्य करने के लिए सेट किया गया है, और 6 प्रक्रियाएं 'काम करने' के लिए मौजूद हैं, लेकिन केवल 1 कार्य 'चल रहे कार्यों' के अंतर्गत दिखाया गया है।

यहाँ कर रहे हैं कार्यकर्ता विकल्प::

The worker options, as seen by flower

और यहाँ है केवल 1 चल प्रक्रिया के साथ कि कार्यकर्ता के लिए कार्य टैब:

enter image description here

यह एक छोटा सा दृश्य सबूत है मैंने पाया है कि अगर मैं अजवाइन को फिर से शुरू करता हूं, तो समेकन को एक बार फिर सम्मानित किया जाता है और मैं> 1 चल रहा कार्य देखता हूं, लेकिन कुछ समय/कार्यों के बाद यह इस व्यवहार पर वापस आ जाता है ..

इस अड़चन समस्या को ठीक करने के लिए कोई विचार?

+0

मैं Heroku पर एक ही समस्या आई थी। लंबे समय तक चलने वाले कार्य के दौरान अन्य सभी कर्मचारी किसी भी नए कार्य को स्वीकार नहीं करते हैं। इसके साथ कोई भाग्य? – odedfos

+1

क्या आप इस बग का अनुभव कर रहे हैं? https://github.com/celery/celery/issues/1845 – Buttons840

+0

हाय बटन 840, मैं उस मुद्दे पर सिर्फ चमकने के बाद सुनिश्चित नहीं हो सकता, लेकिन ऐसा लगता है कि बहुत कुछ समान है। मेरी टीम उस मुद्दे पर नजर रखेगी और देखें कि इसका संकल्प हमारी समस्याओं को हल करता है (और यदि हम '-ऑफेयर' विकल्प का उपयोग करने से बच सकते हैं)। अच्छा खोज! –

उत्तर

17

मुझे यकीन नहीं है कि यह आपका उपयोग मामला है, लेकिन जब मैं लंबे और छोटे कार्यों का मिश्रण करता था तो मैं इसी तरह की समस्याओं में भाग गया। असल में क्या हुआ यह है कि किसी बिंदु पर एक प्रक्रिया बहुत लंबे समय तक चलने वाली कार्य शुरू कर सकती है, जबकि कुछ अन्य कार्यों को प्रीफेच करते हुए, उन्हें अन्य प्रक्रियाओं से उपभोग करने से रोकती है। इसलिए मैंने प्रीफेचिंग सामान को अक्षम कर दिया, जो केवल तभी उपयोगी होता है जब आप बहुत सारे छोटे कार्य चला रहे हों।

प्रीफ़ेच अक्षम करने के लिए, आप अजवाइन 3.1+ और Ofair setting जरूरत है, उदाहरण के लिए:

celery -A proj worker -l info -Ofair 
+3

प्रीफेटिंग समस्या के साथ भी, अन्य कार्यों द्वारा नए कार्यों को सही तरीके से संभाला नहीं जाना चाहिए क्योंकि कार्यों को पूर्ववत नहीं किया गया है? – odedfos

+0

इस प्रश्न का उत्तर देने में देरी के लिए खेद है। मैं इसे उत्तर के रूप में चिह्नित कर रहा हूं क्योंकि कम से कम अभी तक समस्या को ठीक करने के लिए ऐसा लगता है। मेरे चल रहे कार्यों का # अब समवर्ती सीमा के करीब है, लेकिन मैंने अभी तक इसे बड़े पैमाने पर आजमाने की कोशिश नहीं की है .. –

+0

वाह मैं आश्चर्यचकित हूं कि सेलेरी प्री-फ़ेचर्स कार्य ... मेरा मतलब है कि इससे प्रदर्शन लाभ की तुलना में मामूली है सिरदर्द तब होता है जब कार्य तुरंत शुरू नहीं होते हैं क्योंकि उन्हें पहले से ही उस विशेष कार्यकर्ता द्वारा लाया गया है और कुछ निष्पादित करने में कुछ समय लग रहा है !!! –

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