module SidekiqUniqueJobs::SidekiqWorkerMethods
Module with convenience methods for the Sidekiq::Job class
@author Mikael Henriksson <mikael@mhenrixon.com>
Attributes
@!attribute [r] job_class
@return [Sidekiq::Job] The Sidekiq::Job implementation
Public Instance Methods
Source
# File lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb, line 42 def after_unlock_hook lambda do if @original_job_class.respond_to?(:after_unlock) # instance method in sidekiq v6 if @original_job_class.method(:after_unlock).arity.positive? # arity check to maintain backwards compatibility @original_job_class.after_unlock(item) else @original_job_class.after_unlock end elsif job_class.respond_to?(:after_unlock) # class method regardless of sidekiq version if job_class.method(:after_unlock).arity.positive? # arity check to maintain backwards compatibility job_class.after_unlock(item) else job_class.after_unlock end end end end
The hook to call after a successful unlock @return [Proc]
Source
# File lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb, line 76 def default_job_options if Sidekiq.respond_to?(:default_job_options) Sidekiq.default_job_options else Sidekiq.default_worker_options end end
Returns the default worker options from Sidekiq
@return [Hash<Symbol, Object>]
Source
# File lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb, line 34 def job_class=(obj) # this is what was originally passed in, it can be an instance or a class depending on sidekiq version @original_job_class = obj @job_class = job_class_constantize(obj) end
Source
# File lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb, line 66 def job_class_constantize(klazz = @job_class) SidekiqUniqueJobs.safe_constantize(klazz) end
Attempt to constantize a string worker_class argument, always failing back to the original argument when the constant can’t be found
@return [Sidekiq::Job]
Source
# File lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb, line 15 def job_method_defined?(method_sym) job_class.respond_to?(method_sym) end
Avoids duplicating worker_class.respond_to? in multiple places @return [true, false]
Source
# File lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb, line 21 def job_options return {} unless sidekiq_job_class? job_class.get_sidekiq_options.deep_stringify_keys end
Wraps get_sidekiq_options to always work with a hash @return [Hash] of the worker class sidekiq options