class SidekiqUniqueJobs::LockTimeout
Calculates timeout and expiration
@author Mikael Henriksson <mikael@mhenrixon.com>
Attributes
item[R]
@!attribute [r] item
@return [Hash] the Sidekiq job hash
Public Class Methods
calculate(item)
click to toggle source
Calculates the timeout for a Sidekiq
job
@param [Hash] item sidekiq job hash
@return [Integer] timeout in seconds
# File lib/sidekiq_unique_jobs/lock_timeout.rb, line 19 def self.calculate(item) new(item).calculate end
new(item)
click to toggle source
@param [Hash] item the Sidekiq
job hash @option item [Integer, nil] :lock_ttl the configured lock expiration @option item [Integer, nil] :lock_timeout the configured lock timeout @option item [String] :class the class of the sidekiq worker @option item [Float] :at the unix time the job is scheduled at
# File lib/sidekiq_unique_jobs/lock_timeout.rb, line 32 def initialize(item) @item = item @worker_class = item[CLASS] end
Public Instance Methods
calculate()
click to toggle source
Finds a lock timeout in either of
default worker options, {default_lock_timeout} or provided worker_options
@return [Integer, nil]
# File lib/sidekiq_unique_jobs/lock_timeout.rb, line 44 def calculate timeout = default_worker_options[LOCK_TIMEOUT] timeout = default_lock_timeout if default_lock_timeout timeout = worker_options[LOCK_TIMEOUT] if worker_options.key?(LOCK_TIMEOUT) timeout end
default_lock_timeout()
click to toggle source
The configured default_lock_timeout
@see SidekiqUniqueJobs::Config#lock_timeout
@return [Integer, nil]
# File lib/sidekiq_unique_jobs/lock_timeout.rb, line 58 def default_lock_timeout SidekiqUniqueJobs.config.lock_timeout end