मुझे अभी कॉन्फ़िगरेशन विकल्प CELERYD_PREFETCH_MULTIPLIER
(docs) के बारे में पता चला है। डिफ़ॉल्ट 4 है, लेकिन (मुझे विश्वास है) मैं prefetching बंद या कम से कम चाहते हैं। मैं इसे 1 अब निर्धारित करते हैं, जो कि मैं क्या तलाश कर रहा हूँ करने के लिए पर्याप्त करीब है, लेकिन अभी भी कुछ बातें मुझे समझ नहीं आता है:सेलेरी कार्य को पूर्ववत करना
क्यों यह एक अच्छा विचार प्रीफ़ेचिंग है? मुझे वास्तव में इसके लिए कोई कारण नहीं दिखता है, जब तक कि संदेश कतार और श्रमिकों के बीच बहुत विलंबता न हो (मेरे मामले में, वे वर्तमान में एक ही मेजबान पर चल रहे हैं और अंत में एक ही डेटा में सबसे खराब मेजबानों पर चल सकता है बीच में)। दस्तावेज केवल नुकसान का उल्लेख करता है, लेकिन यह समझाने में विफल रहता है कि फायदे क्या हैं।
कई लोग इस तरह से prefetching (मेरी राय में एक उचित धारणा) बंद करने में सक्षम होने की उम्मीद कर 0 पर सेट करने लगते हैं। हालांकि, 0 का मतलब असीमित prefetching है। किसी को कभी भी असीमित प्रीफेचिंग क्यों चाहिए, क्या वह पूरी तरह से समेकन/असिंक्रोनिटी को खत्म नहीं करता है, आपने पहली जगह में एक कार्य कतार पेश की है?
प्रीफेचिंग क्यों बंद नहीं किया जा सकता है? ज्यादातर मामलों में प्रदर्शन को बंद करने के लिए यह एक अच्छा विचार नहीं हो सकता है, लेकिन क्या यह संभव नहीं है कि इसके लिए कोई तकनीकी कारण हो? या यह अभी लागू नहीं किया गया है?
कभी-कभी, यह विकल्प
CELERY_ACKS_LATE
से जुड़ा हुआ है। उदाहरण के लिए। Roger Hu writes «[...] अक्सर [उपयोगकर्ता] वास्तव में क्या चाहते हैं कि एक कार्यकर्ता केवल बाल प्रक्रियाओं के रूप में कई कार्यों को आरक्षित करे। लेकिन देर से स्वीकृति को सक्षम किए बिना यह संभव नहीं है [...] »मुझे नहीं पता कि ये दो विकल्प कैसे जुड़े हुए हैं और दूसरे के बिना क्यों संभव नहीं है। कनेक्शन का एक और उल्लेख here पाया जा सकता है। क्या कोई समझा सकता है कि दो विकल्प क्यों जुड़े हुए हैं?
धन्यवाद। 2) ठीक है, लेकिन कोई भी 'कोई विशिष्ट सीमा' क्यों नहीं चाहेगा? 3) मुझे पूरा यकीन है कि वर्तमान कार्य पूरा होने से पहले मुझे अभी भी "ब्रोकर से कार्य मिला" संदेश दिखाई देता है। –
AFAIK, 1 से प्रीफेचिंग सेटिंग ** ** ** इसे बंद करने के बराबर नहीं है। प्रीफेच के लिए यह सबसे कम संभव मूल्य है (स्रोत कोड हैकिंग नहीं करते समय), जो बदले में, वर्तमान मशीन में सीपीयू/कोर की संख्या है। –
@RonKlein यह CPUs/कोर की संख्या नहीं है, यह आपके द्वारा परिभाषित सेलरी श्रमिकों की संख्या है (जो कुछ मामलों में समान हो सकती है, लेकिन आमतौर पर नहीं)। साथ ही, यदि प्रत्येक कार्यकर्ता एक ही कार्य को पूर्ववत कर रहा है, तो इसे निष्पादित कर रहा है, फिर दूसरे को प्रीफेच कर रहा है, यह प्रीफ़ेटिंग बंद करने के बराबर है, इसलिए आपका कथन IMHO गलत है। (सिस्टम को हमेशा कार्य करना चाहिए क्योंकि श्रमिक हैं क्योंकि यह सभी श्रमिकों को कार्यों के साथ खिलाया जाना चाहता है।) – nitwit