Class: SidekiqUniqueJobs::TimeoutCalculator

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq_unique_jobs/timeout_calculator.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(item) ⇒ TimeoutCalculator

Returns a new instance of TimeoutCalculator.



7
8
9
# File 'lib/sidekiq_unique_jobs/timeout_calculator.rb', line 7

def initialize(item)
  @item = item
end

Class Method Details

.for_item(item) ⇒ Object



3
4
5
# File 'lib/sidekiq_unique_jobs/timeout_calculator.rb', line 3

def self.for_item(item)
  new(item)
end

Instance Method Details

#secondsObject

Raises:

  • (NotImplementedError)


17
18
19
# File 'lib/sidekiq_unique_jobs/timeout_calculator.rb', line 17

def seconds
  raise NotImplementedError
end

#time_until_scheduledObject



11
12
13
14
15
# File 'lib/sidekiq_unique_jobs/timeout_calculator.rb', line 11

def time_until_scheduled
  scheduled = item[AT_KEY]
  return 0 unless scheduled
  (Time.at(scheduled) - Time.now.utc).to_i
end

#worker_classObject



29
30
31
# File 'lib/sidekiq_unique_jobs/timeout_calculator.rb', line 29

def worker_class
  @worker_class ||= SidekiqUniqueJobs.worker_class_constantize(item[CLASS_KEY])
end

#worker_class_queue_lock_expirationObject



21
22
23
# File 'lib/sidekiq_unique_jobs/timeout_calculator.rb', line 21

def worker_class_queue_lock_expiration
  worker_class_expiration_for QUEUE_LOCK_TIMEOUT_KEY
end

#worker_class_run_lock_expirationObject



25
26
27
# File 'lib/sidekiq_unique_jobs/timeout_calculator.rb', line 25

def worker_class_run_lock_expiration
  worker_class_expiration_for RUN_LOCK_TIMEOUT_KEY
end