class SidekiqRobustJob::UniquenessStrategy

Attributes

jobs_repository[R]
lock_ttl_proc[R]
locker[R]
memory_monitor[R]

Public Class Methods

new(locker:, lock_ttl_proc:, jobs_repository:, memory_monitor:) click to toggle source
# File lib/sidekiq_robust_job/uniqueness_strategy.rb, line 18
def initialize(locker:, lock_ttl_proc:, jobs_repository:, memory_monitor:)
  @locker = locker
  @lock_ttl_proc = lock_ttl_proc
  @jobs_repository = jobs_repository
  @memory_monitor = memory_monitor
end
no_uniqueness() click to toggle source
# File lib/sidekiq_robust_job/uniqueness_strategy.rb, line 3
def self.no_uniqueness
  :no_uniqueness
end
until_executed() click to toggle source
# File lib/sidekiq_robust_job/uniqueness_strategy.rb, line 11
def self.until_executed
  :until_executed
end
until_executing() click to toggle source
# File lib/sidekiq_robust_job/uniqueness_strategy.rb, line 7
def self.until_executing
  :until_executing
end

Public Instance Methods

resolve(strategy) click to toggle source
# File lib/sidekiq_robust_job/uniqueness_strategy.rb, line 25
def resolve(strategy)
  case strategy.to_sym
  when SidekiqRobustJob::UniquenessStrategy.no_uniqueness
    SidekiqRobustJob::UniquenessStrategy::NoUniqueness.new(
      locker: locker,
      lock_ttl_proc: lock_ttl_proc,
      jobs_repository: jobs_repository,
      memory_monitor: memory_monitor
    )
  when SidekiqRobustJob::UniquenessStrategy.until_executing
    SidekiqRobustJob::UniquenessStrategy::UntilExecuting.new(
      locker: locker,
      lock_ttl_proc: lock_ttl_proc,
      jobs_repository: jobs_repository,
      memory_monitor: memory_monitor
    )
  when SidekiqRobustJob::UniquenessStrategy.until_executed
    SidekiqRobustJob::UniquenessStrategy::UntilExecuted.new(
      locker: locker,
      lock_ttl_proc: lock_ttl_proc,
      jobs_repository: jobs_repository,
      memory_monitor: memory_monitor
    )
  else
    raise UnknownStrategyError.new(strategy)
  end
end