Module: SidekiqUniqueJobs::SidekiqWorkerMethods
- Included in:
- LockArgs, LockDigest, LockTTL, LockTimeout, OnConflict::Reschedule
- Defined in:
- lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb
Overview
Module with convenience methods for the Sidekiq::Worker class
Instance Method Summary collapse
-
#after_unlock_hook ⇒ Proc
The hook to call after a successful unlock.
-
#default_worker_options ⇒ Hash<Symbol, Object>
Returns the default worker options from Sidekiq.
-
#sidekiq_worker_class? ⇒ true, false
Tests that the.
-
#worker_class ⇒ Sidekiq::Worker
The Sidekiq::Worker implementation.
-
#worker_class_constantize(klazz = @worker_class) ⇒ Sidekiq::Worker
Attempt to constantize a string worker_class argument, always failing back to the original argument when the constant can’t be found.
-
#worker_method_defined?(method_sym) ⇒ true, false
Avoids duplicating worker_class.respond_to? in multiple places.
-
#worker_options ⇒ Hash
Wraps #get_sidekiq_options to always work with a hash.
Instance Method Details
#after_unlock_hook ⇒ Proc
The hook to call after a successful unlock
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb', line 37 def after_unlock_hook # rubocop:disable Metrics/MethodLength lambda do if @worker_class.respond_to?(:after_unlock) # instance method in sidekiq v6 if @worker_class.method(:after_unlock).arity.positive? # arity check to maintain backwards compatibility @worker_class.after_unlock(item) else @worker_class.after_unlock end elsif worker_class.respond_to?(:after_unlock) # class method regardless of sidekiq version if worker_class.method(:after_unlock).arity.positive? # arity check to maintain backwards compatibility worker_class.after_unlock(item) else worker_class.after_unlock end end end end |
#default_worker_options ⇒ Hash<Symbol, Object>
Returns the default worker options from Sidekiq
71 72 73 |
# File 'lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb', line 71 def Sidekiq. end |
#sidekiq_worker_class? ⇒ true, false
Tests that the
25 26 27 |
# File 'lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb', line 25 def sidekiq_worker_class? worker_method_defined?(:get_sidekiq_options) end |
#worker_class ⇒ Sidekiq::Worker
The Sidekiq::Worker implementation
31 32 33 |
# File 'lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb', line 31 def worker_class @_worker_class ||= worker_class_constantize # rubocop:disable Naming/MemoizedInstanceVariableName end |
#worker_class_constantize(klazz = @worker_class) ⇒ Sidekiq::Worker
Attempt to constantize a string worker_class argument, always failing back to the original argument when the constant can’t be found
61 62 63 |
# File 'lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb', line 61 def worker_class_constantize(klazz = @worker_class) SidekiqUniqueJobs.safe_constantize(klazz) end |
#worker_method_defined?(method_sym) ⇒ true, false
Avoids duplicating worker_class.respond_to? in multiple places
10 11 12 |
# File 'lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb', line 10 def worker_method_defined?(method_sym) worker_class.respond_to?(method_sym) end |
#worker_options ⇒ Hash
Wraps #get_sidekiq_options to always work with a hash
16 17 18 19 20 |
# File 'lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb', line 16 def return {} unless sidekiq_worker_class? worker_class..deep_stringify_keys end |