Class: ActiveJob::QueueAdapters::ShoryukenAdapter
- Inherits:
-
AbstractAdapter
- Object
- AbstractAdapter
- ActiveJob::QueueAdapters::ShoryukenAdapter
- Defined in:
- lib/shoryuken/extensions/active_job_adapter.rb
Overview
Shoryuken adapter for Active Job
Shoryuken (“sho-ryu-ken”) is a super-efficient AWS SQS thread based message processor.
Read more about Shoryuken here.
To use Shoryuken set the queue_adapter config to :shoryuken.
Rails.application.config.active_job.queue_adapter = :shoryuken
Direct Known Subclasses
Defined Under Namespace
Classes: JobWrapper
Class Method Summary collapse
Instance Method Summary collapse
-
#enqueue(job, options = {}) ⇒ Object
:nodoc:.
-
#enqueue_after_transaction_commit? ⇒ Boolean
only required for Rails 7.2.x.
-
#enqueue_at(job, timestamp) ⇒ Object
:nodoc:.
-
#stopping? ⇒ Boolean
Indicates whether Shoryuken is in the process of shutting down.
Class Method Details
.enqueue(job) ⇒ Object
26 27 28 |
# File 'lib/shoryuken/extensions/active_job_adapter.rb', line 26 def enqueue(job) instance.enqueue(job) end |
.enqueue_at(job, timestamp) ⇒ Object
30 31 32 |
# File 'lib/shoryuken/extensions/active_job_adapter.rb', line 30 def enqueue_at(job, ) instance.enqueue_at(job, ) end |
.instance ⇒ Object
21 22 23 24 |
# File 'lib/shoryuken/extensions/active_job_adapter.rb', line 21 def instance # https://github.com/ruby-shoryuken/shoryuken/pull/174#issuecomment-174555657 @instance ||= new end |
Instance Method Details
#enqueue(job, options = {}) ⇒ Object
:nodoc:
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/shoryuken/extensions/active_job_adapter.rb', line 53 def enqueue(job, = {}) # :nodoc: register_worker!(job) job..merge! queue = Shoryuken::Client.queues(job.queue_name) = queue, job job. = queue. end |
#enqueue_after_transaction_commit? ⇒ Boolean
only required for Rails 7.2.x
36 37 38 |
# File 'lib/shoryuken/extensions/active_job_adapter.rb', line 36 def enqueue_after_transaction_commit? true end |
#enqueue_at(job, timestamp) ⇒ Object
:nodoc:
64 65 66 |
# File 'lib/shoryuken/extensions/active_job_adapter.rb', line 64 def enqueue_at(job, ) # :nodoc: enqueue(job, delay_seconds: calculate_delay()) end |
#stopping? ⇒ Boolean
Indicates whether Shoryuken is in the process of shutting down.
This method is required for ActiveJob Continuations support (Rails 8.1+). When true, it signals to jobs that they should checkpoint their progress and gracefully interrupt execution to allow for resumption after restart.
48 49 50 51 |
# File 'lib/shoryuken/extensions/active_job_adapter.rb', line 48 def stopping? launcher = Shoryuken::Runner.instance.launcher launcher&.stopping? || false end |