Ruby on Rails 5.2 - ActiveJob::Base

कक्षा ActiveJob :: बेस




ruby

कक्षा ActiveJob :: बेस

जनक:
Object
शामिल मॉड्यूल:
ActiveJob::Core , ActiveJob :: QueueAdapter , ActiveJob::QueueName , ActiveJob::QueuePriority , ActiveJob::Enqueuing , ActiveJob::Execution , ActiveJob::Callbacks , ActiveJob::Exceptions

सक्रिय नौकरी

सक्रिय जॉब ऑब्जेक्ट्स को विभिन्न बैकएंड कतारबद्ध चौखटे के साथ काम करने के लिए कॉन्फ़िगर किया जा सकता है। उपयोग करने के लिए एक कतार एडाप्टर निर्दिष्ट करने के लिए:

ActiveJob::Base.queue_adapter = :inline

QueueAdapters में समर्थित एडेप्टर की एक सूची पाई जा सकती है।

ActiveJob::Base क्लास से विरासत में मिली क्लास बनाकर एक्टिव जॉब ऑब्जेक्ट्स को परिभाषित किया जा सकता है। लागू करने के लिए केवल आवश्यक विधि "प्रदर्शन" विधि है।

सक्रिय जॉब ऑब्जेक्ट को परिभाषित करने के लिए:

class ProcessPhotoJob < ActiveJob::Base
  def perform(photo)
    photo.watermark!('Rails')
    photo.rotate!(90.degrees)
    photo.resize_to_fit!(300, 300)
    photo.upload!
  end
end

जो रिकॉर्ड्स पास किए गए हैं, वे ग्लोबल आईडी का उपयोग करके क्रमबद्ध / डिसरलाइज किए गए हैं। अधिक जानकारी के तर्क में पाया जा सकता है।

कतारबद्ध प्रणाली के मुक्त होते ही किसी कार्य को करने के लिए:

ProcessPhotoJob.perform_later(photo)

भविष्य में किसी बिंदु पर संसाधित होने के लिए एक नौकरी पाने के लिए:

ProcessPhotoJob.set(wait_until: Date.tomorrow.noon).perform_later(photo)

अधिक जानकारी ActiveJob::Core::ClassMethods#set में ActiveJob::Core::ClassMethods#set जा सकती है

कतार में भेजे बिना तुरंत नौकरी भी संसाधित की जा सकती है:

ProcessPhotoJob.perform_now(photo)

ActiveJob::Exceptions

  • DeserializationError - deserialization त्रुटियों के लिए त्रुटि वर्ग।

  • SerializationError - क्रमांकन त्रुटियों के लिए त्रुटि वर्ग।