class SidekiqRobustJob::EnqueueConflictResolutionStrategy

Attributes

clock[R]
jobs_repository[R]

Public Class Methods

do_nothing() click to toggle source
# File lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy.rb, line 3
def self.do_nothing
  :do_nothing
end
drop_self() click to toggle source
# File lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy.rb, line 7
def self.drop_self
  :drop_self
end
new(jobs_repository:, clock:) click to toggle source
# File lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy.rb, line 18
def initialize(jobs_repository:, clock:)
  @jobs_repository = jobs_repository
  @clock = clock
end
replace() click to toggle source
# File lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy.rb, line 11
def self.replace
  :replace
end

Public Instance Methods

resolve(strategy) click to toggle source
# File lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy.rb, line 23
def resolve(strategy)
  case strategy.to_sym
  when SidekiqRobustJob::EnqueueConflictResolutionStrategy.do_nothing
    SidekiqRobustJob::EnqueueConflictResolutionStrategy::DoNothing.new(
      jobs_repository: jobs_repository,
      clock: clock
    )
  when SidekiqRobustJob::EnqueueConflictResolutionStrategy.drop_self
    SidekiqRobustJob::EnqueueConflictResolutionStrategy::DropSelf.new(
      jobs_repository: jobs_repository,
      clock: clock
    )
  when SidekiqRobustJob::EnqueueConflictResolutionStrategy.replace
    SidekiqRobustJob::EnqueueConflictResolutionStrategy::Replace.new(
      jobs_repository: jobs_repository,
      clock: clock
    )
  else
    raise UnknownStrategyError.new(strategy)
  end
end