Class: SidekiqUniqueJobs::TimeoutCalculator
- Inherits:
-
Object
- Object
- SidekiqUniqueJobs::TimeoutCalculator
- Defined in:
- lib/sidekiq_unique_jobs/timeout_calculator.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(item) ⇒ TimeoutCalculator
constructor
A new instance of TimeoutCalculator.
- #seconds ⇒ Object
- #time_until_scheduled ⇒ Object
- #unique_expiration ⇒ Object
- #worker_class ⇒ Object
- #worker_class_unique_expiration ⇒ Object
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
#seconds ⇒ Object
11 12 13 |
# File 'lib/sidekiq_unique_jobs/timeout_calculator.rb', line 11 def seconds time_until_scheduled + unique_expiration end |
#time_until_scheduled ⇒ Object
15 16 17 18 19 |
# File 'lib/sidekiq_unique_jobs/timeout_calculator.rb', line 15 def time_until_scheduled scheduled = item[AT_KEY] return 0 unless scheduled (Time.at(scheduled) - Time.now.utc).to_i end |
#unique_expiration ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/sidekiq_unique_jobs/timeout_calculator.rb', line 21 def unique_expiration @unique_expiration ||= ( worker_class_unique_expiration || SidekiqUniqueJobs.config.default_expiration ).to_i end |
#worker_class ⇒ Object
34 35 36 |
# File 'lib/sidekiq_unique_jobs/timeout_calculator.rb', line 34 def worker_class @worker_class ||= SidekiqUniqueJobs.worker_class_constantize(item[CLASS_KEY]) end |
#worker_class_unique_expiration ⇒ Object
29 30 31 32 |
# File 'lib/sidekiq_unique_jobs/timeout_calculator.rb', line 29 def worker_class_unique_expiration return unless worker_class.respond_to?(:get_sidekiq_options) worker_class.[UNIQUE_TIMEOUT_KEY] end |