मैं हैडोप पर लंबे समय तक चलने वाले कार्यों को चलाने के लिए अजवाइन का उपयोग कर रहा हूं। प्रत्येक कार्य हडोप पर एक सुअर स्क्रिप्ट निष्पादित करता है जो लगभग 30 मिनट तक चलता है - 2 घंटे।विभिन्न मूल्यों के साथ विभिन्न सेलेरी श्रमिकों को शुरू करना
मेरे वर्तमान हैडोप सेटअप में 4 कतार ए, बी, सी, और डिफ़ॉल्ट है। सभी कार्यों को वर्तमान में एक एकल कार्यकर्ता द्वारा निष्पादित किया जा रहा है जो नौकरी को एक कतार में प्रस्तुत करता है।
मैं 3 और श्रमिकों को जोड़ना चाहता हूं जो अन्य कतारों में नौकरियां जमा करते हैं, प्रति कार्यकर्ता एक कतार।
समस्या यह है कि वर्तमान में कतार वर्तमान में हार्ड कोड है और मैं इस चर प्रति कार्यकर्ता को बनाना चाहता हूं।
मैंने बहुत कुछ खोजा लेकिन मैं प्रत्येक अजवाइन कार्यकर्ता को एक अलग कतार मूल्य पारित करने और मेरे कार्य में इसे एक्सेस करने का कोई तरीका नहीं ढूंढ पा रहा हूं।
मैं अपने सेलरी कार्यकर्ता को ऐसा शुरू करता हूं।
celery -A app.celery worker
मैं कमांड लाइन अपने आप में कुछ अतिरिक्त तर्क पारित और मेरे काम में इसे का उपयोग करना चाहते हैं, लेकिन अजवाइन शिकायत है कि यह अपने कस्टम तर्क को नहीं समझता।
मैं --concurrency=3
पैरामीटर सेट करके उसी होस्ट पर सभी श्रमिकों को चलाने की योजना बना रहा हूं। क्या इस समस्या का कोई हल है?
धन्यवाद!
संपादित
मौजूदा परिदृश्य इस तरह है। हर मैं इसे केवल प्रिंट कतार सी
@celery.task()
def print_something():
print "C"
tasks.print_something.delay()
कह कर कार्य print_something पर अमल करने की कोशिश मैं श्रमिकों क्या मूल्य मैं उन्हें करने के लिए पारित करते हुए उन्हें शुरू करने के आधार पर एक चर पत्र प्रिंट की आवश्यकता है।
@celery.task()
def print_something():
print "<Variable Value Per Worker Here>"
क्या आपके लिए लागू कोड स्निपेट साझा करना संभव है? –