मैं सेलेरी का उपयोग करके कार्यों को प्रबंधित करना चाहता हूं। मैं एक एकल कार्य कतार (समरूपता 1 के साथ) रखना चाहता हूं और अलग-अलग प्राथमिकताओं के साथ कार्य को कतार में धक्का दे सकता हूं जैसे कि उच्च प्राथमिकता वाले कार्य दूसरों को पसंद करेंगे।सेलेरी टास्क प्राथमिकता
मैं बहुत की तरह एक कतार में तीन कार्यों द्वारा जोड़ा जा रहा:
add_tasks.py
from tasks import example_task
example_task.apply_async((1), priority=1)
example_task.apply_async((2), priority=3)
example_task.apply_async((3), priority=2)
मैं निम्नलिखित विन्यास है:
tasks.py
from __future__ import absolute_import, unicode_literals
from celery import Celery
from kombu import Queue, Exchange
import time
app = Celery('tasks', backend='rpc://', broker='pyamqp://')
app.conf.task_queues = [Queue('celery', Exchange('celery'), routing_key='celery', queue_arguments={'x-max-priority': 10})]
@app.task
def example_task(task_num):
time.sleep(3)
print('Started {}'.format(task_num)
return True
मैं तीसरे से पहले चलाने के लिए जोड़े गए दूसरे कार्य की अपेक्षा करता हूं, क्योंकि इसकी उच्च प्राथमिकता है लेकिन यह नहीं है। वे जोड़े गए क्रम में भागते हैं।
मैं दस्तावेज़ों का पालन कर रहा हूं और सोचा कि मैंने ऐप को सही तरीके से कॉन्फ़िगर किया है।
क्या मैं कुछ गलत कर रहा हूं या क्या मैं प्राथमिकता सुविधा को गलत समझ रहा हूं?
आपके उत्तर के लिए धन्यवाद। मैंने आपकी प्रोजेक्ट को डाउनलोड किया है और जैसा कि आप वर्णन करते हैं, सेटिंग्स के साथ दस्तावेज के रूप में इसे ठीक से चलाया है लेकिन अभी भी प्राथमिकता व्यवहार को काम नहीं कर रहा है। – EngineerCamp
@EngineerCamp मैंने इसे फिर से क्लोन करने के बाद पुनः जांच की और यह ठीक काम करने लग रहा था। यहां एक छोटा पूर्वावलोकन वीडियो है [यहां] (https://www.youtube.com/watch?v=nQXO2kjGV9M&feature=youtu.be) केवल 1 सेलेरी कार्यकर्ता के साथ ताकि सॉर्ट किए जा रहे कार्यों का निरीक्षण करना आसान हो। वीडियो की शुरुआत में (जैसे वीडियो को 360p_ पर ट्रांसकोड किया जा रहा है), ** देखें कि 480p और 720p पर क्लिक किया गया है जब 480p और 720p क्लिक किया जाता है तब भी 480p पहले क्लिक किया जाता है **। –
मैंने इसे एक और जाना दिया लेकिन अभी भी कोई भाग्य नहीं है। मैं पाइथन 3 का उपयोग कर रहा हूं और उबंटू 14.04 पर हूं, इसलिए शायद वहां कुछ अंतर हैं। – EngineerCamp