সেলারি ব্যবহার করে একাধিক কর্মী চালাচ্ছেন


11

আমার একক সিস্টেমে সেলারি ব্যবহার করে সমান্তরালভাবে রব্বিটমিক থেকে পড়া এবং টাস্ক সম্পাদন করা দরকার।

[2014-12-30 15:54:22,374: INFO/Worker-1] ...   
[2014-12-30 15:54:23,401: INFO/Worker-1] ...
[2014-12-30 15:54:30,878: INFO/Worker-1] ...
[2014-12-30 15:54:32,209: INFO/Worker-1] ...
[2014-12-30 15:54:33,255: INFO/Worker-1] ...
[2014-12-30 15:54:48,445: INFO/Worker-1] ...
[2014-12-30 15:54:49,811: INFO/Worker-1] ...
[2014-12-30 15:54:50,903: INFO/Worker-1] ...
[2014-12-30 15:55:39,674: INFO/Worker-1] ...
[2014-12-30 15:55:41,024: INFO/Worker-1] ...
[2014-12-30 15:55:42,147: INFO/Worker-1] ...

এটি সম্পূর্ণ 1 টি কর্মচারী পুরো সময় চালাচ্ছে .. অর্থাৎ একের পর এক ক্রমানুক্রমিক ক্রমে। সমান্তরালভাবে চলতে একাধিক কর্মী চালানোর জন্য আমি সেলারিটি কীভাবে কনফিগার করতে পারি?

উত্তর:


17

শিশুদের প্রক্রিয়াজাতকরণের থ্রেড নয় কর্মী সম্পর্কিত মার্টিনপির মন্তব্যের পরে আমি এখন আমার উত্তর আপডেট করেছি:

সেলারি workerএবং worker processesবিভিন্ন জিনিস ( রেফারেন্সের জন্য এটি পড়ুন )।

যখন কোনও শ্রমিক এটি শুরু করা হয় তখন নির্দিষ্ট সংখ্যক শিশু প্রক্রিয়া তৈরি করে।

এই প্রক্রিয়াগুলির ডিফল্ট সংখ্যাটি সেই মেশিনে কয়েকটি সংখ্যক করের সমান।

লিনাক্সে আপনি এর মাধ্যমে কোরের সংখ্যা পরীক্ষা করতে পারেন:

$ nproc --all

অন্যথায় আপনি এটি নিজেরাই নির্দিষ্ট করতে পারেন, যেমন:

$ celery -A proj worker --loglevel=INFO --concurrency=2

উপরের উদাহরণে এমন এক কর্মী আছেন যা 2 শিশু প্রক্রিয়া চালাতে সক্ষম হবেন। সাধারণত মেশিনে একক কর্মী চালানোর পরামর্শ দেওয়া হয় এবং সমান্তরাল মানটি কতগুলি প্রক্রিয়া সমান্তরালে চলবে তা সংজ্ঞায়িত করে, তবে যদি একাধিক কর্মী চালনার প্রয়োজন হয় তবে আপনি নীচের দেখানো মত এগুলি শুরু করতে পারেন:

$ celery -A proj worker -l info --concurrency=4 -n wkr1@hostname
$ celery -A proj worker -l info --concurrency=2 -n wkr2@hostname
$ celery -A proj worker -l info --concurrency=2 -n wkr3@hostname

আরও তথ্যের জন্য সেলারি ডক্স পড়ুন


3
কনক্যুরেন্সির প্যারামিটার থ্রেড চালায় না। এটি ডিফল্টরূপে শিশু প্রক্রিয়াগুলি চালায় তাই এটি সমান্তরাল - ডকস.সিলারিপ্রজেক্ট.org
en

সংমিশ্রণ এবং থ্রেডগুলি একে অপরের সাথে কীভাবে সম্পর্কযুক্ত, যদি ডিফল্ট সংমিশ্রণটি মেশিনের কোরগুলির সংখ্যা হয় তবে থ্রেডের সংখ্যা কত হবে? এটি কনফিগারযোগ্য?
টমাস জন

@ থমাস জন আমার মনে হয় থ্রেডগুলির জন্য ডিফল্ট নম্বরটি এখনও মেশিনের কোরগুলির সংখ্যা। সাধারণত, আপনি থ্রেড-ভিত্তিক কর্মীদের জন্য --concurrency পতাকা উচ্চতর সেট করতে চাইবেন।
ফ্রেগলেগস

0

আমি এটি খুঁজে পেয়েছি

http://docs.celeryproject.org/en/latest/reference/celery.html?highlight=parallel

আপনি সেখানে ক্যানভাসের আদিম সন্ধান করতে পারেন যে সমান্তরাল সম্পাদনের জন্য কীভাবে গ্রুপগুলি তৈরি করা যায় তা আপনি দেখতে পারেন।

শ্রেণি সেলারি.group (টাস্ক 1 [, টাস্ক 2 [, টাস্ক ৩ [,… টাস্কএন]]]) সমান্তরালভাবে সম্পাদন করার জন্য একটি গ্রুপ তৈরি করে।

অন্যথায় একটি ভাল উপায় হ'ল আইআরসি চ্যানেলে গিয়ে সেই বিশেষ প্রশ্ন জিজ্ঞাসা করা। সাধারণত কিছু লোক রয়েছে যারা এটি খুব ভাল জানেন এবং তারা আপনাকে সহায়তা করতে পারে।


0

দেখে মনে হচ্ছে আপনার কর্মী কেবল একটি একক প্রক্রিয়া / থ্রেড চালাচ্ছেন। শ্রমিককে একাধিক (সমান্তরাল) কর্মের দৃষ্টান্ত উত্সাহিত করার জন্য আপনাকে সম্ভবত যুক্তি --concurrencyবা -cযুক্তি যুক্ত করতে হবে ।

celery -A proj worker -c 4
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.