Class: MatViews::Jobs::Adapter
- Inherits:
-
Object
- Object
- MatViews::Jobs::Adapter
- Defined in:
- lib/mat_views/jobs/adapter.rb
Overview
Adapter class for handling job enqueuing across different backends.
This class abstracts the job enqueueing process so MatViews can work with multiple background processing frameworks without changing core code.
Supported adapters (configured via MatViews.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/mat_views/jobs/adapter.rb', line 60 def self.enqueue(job_class, queue:, args: []) queue_str = queue.to_s job_adapter = MatViews.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 |