Class: ActiveJob::QueueAdapters::ShoryukenConcurrentSendAdapter
- Inherits:
-
ShoryukenAdapter
- Object
- ShoryukenAdapter
- ActiveJob::QueueAdapters::ShoryukenConcurrentSendAdapter
- Defined in:
- lib/shoryuken/extensions/active_job_concurrent_send_adapter.rb
Overview
Shoryuken concurrent adapter for Active Job
This adapter sends messages asynchronously (ie non-blocking) and allows the caller to set up handlers for both success and failure
To use this adapter, set up as:
success_handler = ->(response, job, options) { StatsD.increment(“#jobjob.classjob.class.name.success”) } error_handler = ->(err, job, options) { StatsD.increment(“#jobjob.classjob.class.name.failure”) }
adapter = ActiveJob::QueueAdapters::ShoryukenConcurrentSendAdapter.new(success_handler, error_handler)
config.active_job.queue_adapter = adapter
Instance Method Summary collapse
- #enqueue(job, options = {}) ⇒ Object
- #error_handler ⇒ Object
-
#initialize(success_handler = nil, error_handler = nil) ⇒ ShoryukenConcurrentSendAdapter
constructor
A new instance of ShoryukenConcurrentSendAdapter.
- #success_handler ⇒ Object
Methods inherited from ShoryukenAdapter
enqueue, enqueue_at, #enqueue_at, instance
Constructor Details
#initialize(success_handler = nil, error_handler = nil) ⇒ ShoryukenConcurrentSendAdapter
Returns a new instance of ShoryukenConcurrentSendAdapter.
19 20 21 22 |
# File 'lib/shoryuken/extensions/active_job_concurrent_send_adapter.rb', line 19 def initialize(success_handler = nil, error_handler = nil) @success_handler = success_handler @error_handler = error_handler end |
Instance Method Details
#enqueue(job, options = {}) ⇒ Object
24 25 26 |
# File 'lib/shoryuken/extensions/active_job_concurrent_send_adapter.rb', line 24 def enqueue(job, = {}) send_concurrently(job, ) { |f_job, | super(f_job, ) } end |
#error_handler ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/shoryuken/extensions/active_job_concurrent_send_adapter.rb', line 32 def error_handler @error_handler ||= begin lambda { |error, job, | Shoryuken.logger.warn("Failed to enqueue job: #{job.inspect} due to error: #{error}") } end end |
#success_handler ⇒ Object
28 29 30 |
# File 'lib/shoryuken/extensions/active_job_concurrent_send_adapter.rb', line 28 def success_handler @success_handler ||= ->(, _job, ) { nil } end |