Class: Sidecloq::JobEnqueuer
- Inherits:
-
Object
- Object
- Sidecloq::JobEnqueuer
- Defined in:
- lib/sidecloq/job_enqueuer.rb
Instance Attribute Summary collapse
-
#spec ⇒ Object
readonly
Returns the value of attribute spec.
Instance Method Summary collapse
- #active_job_class? ⇒ Boolean
- #enqueue ⇒ Object
-
#initialize(spec) ⇒ JobEnqueuer
constructor
A new instance of JobEnqueuer.
- #initialize_active_job_class ⇒ Object
- #klass ⇒ Object
Constructor Details
#initialize(spec) ⇒ JobEnqueuer
Returns a new instance of JobEnqueuer.
5 6 7 8 9 |
# File 'lib/sidecloq/job_enqueuer.rb', line 5 def initialize(spec) # Dup to prevent JID reuse in subsequent enqueue's @spec = spec.dup @spec['class'] = Object.const_get(spec['class']) end |
Instance Attribute Details
#spec ⇒ Object (readonly)
Returns the value of attribute spec.
3 4 5 |
# File 'lib/sidecloq/job_enqueuer.rb', line 3 def spec @spec end |
Instance Method Details
#active_job_class? ⇒ Boolean
25 26 27 |
# File 'lib/sidecloq/job_enqueuer.rb', line 25 def active_job_class? defined?(ActiveJob::Base) && klass < ActiveJob::Base end |
#enqueue ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/sidecloq/job_enqueuer.rb', line 11 def enqueue if active_job_class? initialize_active_job_class.enqueue(queue: spec['queue']) else Sidekiq::Client.push(spec) end end |
#initialize_active_job_class ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/sidecloq/job_enqueuer.rb', line 29 def initialize_active_job_class args = spec['args'] if args.is_a?(Array) klass.new(*args) else klass.new(args) end end |
#klass ⇒ Object
21 22 23 |
# File 'lib/sidecloq/job_enqueuer.rb', line 21 def klass spec['class'] end |