Ruby on Rails 5.2 - ActiveJob::QueueAdapters

मॉड्यूल ActiveJob :: QueueAdapters




ruby

मॉड्यूल ActiveJob :: QueueAdapters

सक्रिय नौकरी एडेप्टर

सक्रिय नौकरी में निम्नलिखित पंक्तिबद्ध बैकएंड के लिए एडेप्टर हैं:

फीचर्स का समर्थन करता है

|                   | Async | Queues | Delayed    | Priorities | Timeout | Retries |
|-------------------|-------|--------|------------|------------|---------|---------|
| Backburner        | Yes   | Yes    | Yes        | Yes        | Job     | Global  |
| Delayed Job       | Yes   | Yes    | Yes        | Job        | Global  | Global  |
| Qu                | Yes   | Yes    | No         | No         | No      | Global  |
| Que               | Yes   | Yes    | Yes        | Job        | No      | Job     |
| queue_classic     | Yes   | Yes    | Yes*       | No         | No      | No      |
| Resque            | Yes   | Yes    | Yes (Gem)  | Queue      | Global  | Yes     |
| Sidekiq           | Yes   | Yes    | Yes        | Queue      | No      | Job     |
| Sneakers          | Yes   | Yes    | No         | Queue      | Queue   | No      |
| Sucker Punch      | Yes   | Yes    | Yes        | No         | No      | No      |
| Active Job Async  | Yes   | Yes    | Yes        | No         | No      | No      |
| Active Job Inline | No    | Yes    | N/A        | N/A        | N/A     | N/A     |

async

हां: क्यू एडेप्टर में गैर-अवरुद्ध तरीके से काम चलाने की क्षमता है। यह या तो एक अलग या कांटे की प्रक्रिया पर चलता है, या एक अलग धागे पर।

नहीं: नौकरी उसी प्रक्रिया में चलती है।

कतार

हां: नौकरियां निर्धारित कर सकते हैं कि वे कतार में किस कतार से चल रहे हैं या सेट विधि का उपयोग करके।

विलंबित

हां: एडॉप्टर भविष्य में perform_later के माध्यम से नौकरी चलाएगा।

(मणि): इस एडेप्टर के साथ perform_later का उपयोग करने के लिए एक अतिरिक्त मणि की आवश्यकता होती है।

नहीं: एडॉप्टर अगले अवसर पर नौकरियां चलाएगा और Perform_later का उपयोग नहीं कर सकता है।

एन / ए: एडॉप्टर कतार का समर्थन नहीं करता है।

नोट: क्यू 3.1_ संस्करण से नौकरी शेड्यूलिंग का समर्थन करता है। पुराने संस्करणों के लिए आप queue_classic-later रत्न का उपयोग कर सकते हैं।

प्राथमिकताएं

जिस क्रम में नौकरियों को संसाधित किया जाता है वह एडेप्टर के आधार पर अलग-अलग कॉन्फ़िगर किया जा सकता है।

नौकरी: एडॉप्टर से विरासत में प्राप्त कोई भी वर्ग अन्य नौकरियों के सापेक्ष नौकरी की वस्तु पर प्राथमिकता निर्धारित कर सकता है।

कतार: एडॉप्टर नौकरी की कतारों के लिए प्राथमिकता निर्धारित कर सकता है, जब सक्रिय जॉब के साथ एक कतार स्थापित करता है तो इसका सम्मान किया जाएगा।

हां: प्राथमिकता को कार्य ऑब्जेक्ट पर, कतार स्तर पर या डिफ़ॉल्ट कॉन्फ़िगरेशन विकल्प के रूप में सेट करने की अनुमति देता है।

नहीं: नौकरियों की प्राथमिकता को कॉन्फ़िगर करने की अनुमति नहीं देता है।

एन / ए: एडॉप्टर कतार का समर्थन नहीं करता है, और इसलिए उन्हें छांट रहा है।

समय समाप्त

जब आवंटित समय के बाद नौकरी बंद हो जाएगी।

नौकरी: नौकरी वर्ग के प्रत्येक उदाहरण के लिए समय निर्धारित किया जा सकता है।

कतार: कतार में सभी नौकरियों के लिए समय निर्धारित है।

ग्लोबल: एडॉप्टर कॉन्फ़िगर किया गया है कि सभी नौकरियों में अधिकतम रन समय है।

एन / ए: यह एडेप्टर एक अलग प्रक्रिया में नहीं चलता है, और इसलिए टाइमआउट असमर्थित है।

पुनर्प्रयास

नौकरी: रिट्रीट की संख्या नौकरी वर्ग के प्रति उदाहरण के लिए सेट की जा सकती है।

हां: प्रत्येक उदाहरण के लिए या कतार पर, रिट्रीस की संख्या को विश्व स्तर पर कॉन्फ़िगर किया जा सकता है। यह एडेप्टर नौकरी वर्ग के विफल उदाहरण भी प्रस्तुत कर सकता है जिसे फिर से शुरू किया जा सकता है।

ग्लोबल: एडेप्टर में रिट्रीट की वैश्विक संख्या होती है।

एन / ए: एडेप्टर एक अलग प्रक्रिया में नहीं चलता है, और इसलिए रिट्रीट का समर्थन नहीं करता है।

Async और इनलाइन कतार एडेप्टर

एक्टिव जॉब में विकास और परीक्षण के लिए दो बिल्ट-इन कतार एडेप्टर हैं :async और :inline

पब्लिक क्लास के तरीके

लुकअप (नाम) स्रोत दिखाएँ
# File activejob/lib/active_job/queue_adapters.rb, line 134
def lookup(name)
  const_get(name.to_s.camelize << ADAPTER)
end

निर्दिष्ट नाम के लिए एडाप्टर लौटाता है।

ActiveJob::QueueAdapters.lookup(:sidekiq)
# => ActiveJob::QueueAdapters::SidekiqAdapter