module Sidekiq::Job::Options::ClassMethods
Constants
- ACCESSOR_MUTEX
Public Instance Methods
Source
# File lib/sidekiq/job.rb, line 92 def sidekiq_class_attribute(*attrs) instance_reader = true instance_writer = true attrs.each do |name| synchronized_getter = "__synchronized_#{name}" singleton_class.instance_eval do undef_method(name) if method_defined?(name) || private_method_defined?(name) end define_singleton_method(synchronized_getter) { nil } singleton_class.class_eval do private(synchronized_getter) end define_singleton_method(name) { ACCESSOR_MUTEX.synchronize { send synchronized_getter } } ivar = "@#{name}" singleton_class.instance_eval do m = "#{name}=" undef_method(m) if method_defined?(m) || private_method_defined?(m) end define_singleton_method(:"#{name}=") do |val| singleton_class.class_eval do ACCESSOR_MUTEX.synchronize do undef_method(synchronized_getter) if method_defined?(synchronized_getter) || private_method_defined?(synchronized_getter) define_method(synchronized_getter) { val } end end if singleton_class? class_eval do undef_method(name) if method_defined?(name) || private_method_defined?(name) define_method(name) do if instance_variable_defined? ivar instance_variable_get ivar else singleton_class.send name end end end end val end if instance_reader undef_method(name) if method_defined?(name) || private_method_defined?(name) define_method(name) do if instance_variable_defined?(ivar) instance_variable_get ivar else self.class.public_send name end end end if instance_writer m = "#{name}=" undef_method(m) if method_defined?(m) || private_method_defined?(m) attr_writer name end end end
Source
# File lib/sidekiq/job.rb, line 71 def sidekiq_options(opts = {}) # stringify 2 levels of keys opts = opts.to_h do |k, v| [k.to_s, (Hash === v) ? v.transform_keys(&:to_s) : v] end self.sidekiq_options_hash = get_sidekiq_options.merge(opts) end
Allows customization for this type of Job
. Legal options:
queue - name of queue to use for this job type, default *default* retry - enable retries for this Job in case of error during execution, *true* to use the default or *Integer* count backtrace - whether to save any error backtrace in the retry payload to display in web UI, can be true, false or an integer number of lines to save, default *false*
In practice, any option is allowed. This is the main mechanism to configure the options for a specific job.
Source
# File lib/sidekiq/job.rb, line 84 def sidekiq_retries_exhausted(&block) self.sidekiq_retries_exhausted_block = block end
Source
# File lib/sidekiq/job.rb, line 80 def sidekiq_retry_in(&block) self.sidekiq_retry_in_block = block end