2015-09-09 9 views
8

नीचे दी गई नौकरी को देखते हुए मुझे लगता है कि नौकरी low_priority कतार पर चलती है।क्या ActiveJob की विशिष्ट प्राथमिकता के साथ कतार है?

class GuestsCleanupJob < ActiveJob::Base 
    queue_as :low_priority 
    #.... 
end 

मैं इस से सहमत हूं, लेकिन यह सिर्फ कतार का नाम सही है? वास्तव में इसका प्राथमिकता से कोई लेना देना नहीं है। उदाहरण के लिए यदि मैंने :my_queue नामक कतार के साथ नौकरी बनाई है तो इसे :low_priority कतार के समान प्राथमिकता माना जाएगा।

प्रलेखन से मैं कुछ भी नहीं ढूंढ पाया है कि मैं कतारबद्ध नौकरियों को प्राथमिकता दे सकता हूं। मुझे पता है कि देरी_jobs में यह कार्यक्षमता है, लेकिन मुझे इसे सक्रिय_job में नहीं मिला है।

उत्तर

4

प्राथमिकता वास्तविक कतार एडाप्टर पर निर्भर करती है और यह एडाप्टर कैसे कॉन्फ़िगर किया गया था। यदि आपका एडाप्टर प्राथमिकताओं का समर्थन नहीं करता है या ठीक से कॉन्फ़िगर नहीं किया गया है, तो ActiveJob आपकी मदद नहीं कर सकता है।

यहां से एडाप्टर के बारे में अधिक विवरण प्राप्त करें:

http://edgeapi.rubyonrails.org/classes/ActiveJob/QueueAdapters.html

मुख्य टेकअवे यह है:

मुख्य बिंदु यह सुनिश्चित करें कि सभी रेल क्षुधा में एक नौकरी के बुनियादी ढांचे होगा जगह। इसके बाद हम ढांचे की नौकरी और बचाव जैसे विभिन्न नौकरी धावकों के बीच एपीआई मतभेदों के बारे में चिंता किए बिना, फ्रेमवर्क फीचर्स और अन्य रत्नों को इसके ऊपर बना सकते हैं। अपने क्यूइंग बैकएंड को चुनना, फिर एक परिचालन चिंता का अधिक हो जाता है। और आप अपनी नौकरियों को फिर से लिखने के बिना उनके बीच स्विच करने में सक्षम होंगे।

कतार विन्यास (प्राथमिकताओं सहित) एडाप्टर की ज़िम्मेदारी बन जाता है।

कतार विन्यास का एक उदाहरण के रूप Sidekiq विकि देखें:

https://github.com/mperham/sidekiq/wiki/Advanced-Options#queues

+1

हाँ यह समझ में आता है, लेकिन delayed_job और sidekiq दोनों समर्थन कतारों और प्राथमिकता है और आप एक नौकरी स्तर पर इस सेट कर सकते हैं। यदि आप देरी_job या साइडकीक एडाप्टर का उपयोग कर रहे हैं तो सक्रिय नौकरी इसका समर्थन करती है? ऐसा लगता है जैसे आप हाँ कह रहे हैं ... लेकिन दस्तावेज़ों में से कोई भी वास्तव में मदद करता है। मैंने इस प्रश्न को पोस्ट करने से पहले आपके द्वारा जोड़े गए संदर्भों को पहले से ही देखा है, लेकिन मुझे कुछ भी नहीं मिला ... शायद मुझे कुछ याद आ रहा है? –

+0

इसके लिए आपको अपने एडाप्टर दस्तावेज़ को पढ़ने की जरूरत है। ActiveJob एक अमूर्त है। – dimakura

+1

मैं इसे समझता हूं। मैंने प्रलेखन पढ़ा है - मैं देरी_बॉज का उपयोग कर रहा हूं और आप देरी_बॉज पर नौकरी की प्राथमिकता निर्धारित कर सकते हैं उदाहरण के लिए 'हैंडल_संक्रोनिक: send_mailer, प्राथमिकता => 20'। साइडकीक मैं देख सकता हूं क्योंकि आप कतार और प्राथमिकता सेट करते हैं एक कॉन्फ़िगरेशन फ़ाइल। डिलीटेड नौकरी में ऐसा प्रतीत नहीं होता है। मेरा सवाल यह है कि मैं प्राथमिकता सेट करने के लिए ActiveJob के अबास्ट्रक्शन का उपयोग कैसे करूं ... क्या यह ActiveJob के माध्यम से संभव है या क्या मुझे delayed_job का उपयोग करना है? ActiveJob में देरी_job एडाप्टर को देखते हुए यह संभव नहीं लगता है। मुझे यकीन नहीं है कि स्पष्ट होने के लिए और क्या कहना है। –

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