Class: Smriti::Jobs::Adapter
- Inherits:
-
Object
- Object
- Smriti::Jobs::Adapter
- Defined in:
- lib/smriti/jobs/adapter.rb
Overview
Adapter class for handling job enqueuing across different backends.
This class abstracts the job enqueueing process so Smriti can work with multiple background processing frameworks without changing core code.
Supported adapters (configured via Smriti.configuration.job_adapter):
:active_job→ ActiveJob:sidekiq→ Sidekiq::Client:resque→ Resque
Class Method Summary collapse
-
.enqueue(job_class, queue:, args: []) ⇒ Object
Enqueue a job across supported backends.
Class Method Details
.enqueue(job_class, queue:, args: []) ⇒ Object
Enqueue a job across supported backends.
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/smriti/jobs/adapter.rb', line 60 def self.enqueue(job_class, queue:, args: []) queue_str = queue.to_s job_adapter = Smriti.configuration.job_adapter case job_adapter when :active_job job_class.set(queue: queue_str).perform_later(*args) when :sidekiq Sidekiq::Client.push( 'class' => job_class.name, 'queue' => queue_str, 'args' => args ) when :resque Resque.enqueue_to(queue_str, job_class, *args) else raise ArgumentError, "Unknown job adapter: #{job_adapter.inspect}" end end |