Class: SidekiqRobustJob::EnqueueConflictResolutionStrategy

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy.rb,
lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy/base.rb,
lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy/replace.rb,
lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy/drop_self.rb,
lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy/do_nothing.rb

Defined Under Namespace

Classes: Base, DoNothing, DropSelf, Replace, UnknownStrategyError

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(jobs_repository:, clock:) ⇒ EnqueueConflictResolutionStrategy

Returns a new instance of EnqueueConflictResolutionStrategy.



18
19
20
21
# File 'lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy.rb', line 18

def initialize(jobs_repository:, clock:)
  @jobs_repository = jobs_repository
  @clock = clock
end

Class Method Details

.do_nothingObject



3
4
5
# File 'lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy.rb', line 3

def self.do_nothing
  :do_nothing
end

.drop_selfObject



7
8
9
# File 'lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy.rb', line 7

def self.drop_self
  :drop_self
end

.replaceObject



11
12
13
# File 'lib/sidekiq_robust_job/enqueue_conflict_resolution_strategy.rb', line 11

def self.replace
  :replace
end

Instance Method Details

#resolve(strategy) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 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