2020-04-08 14:13:33 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Gitlab
|
|
|
|
module SidekiqMiddleware
|
|
|
|
module DuplicateJobs
|
|
|
|
module Strategies
|
|
|
|
UnknownStrategyError = Class.new(StandardError)
|
|
|
|
|
|
|
|
STRATEGIES = {
|
2020-11-24 15:15:51 +05:30
|
|
|
until_executing: UntilExecuting,
|
2021-01-29 00:20:46 +05:30
|
|
|
until_executed: UntilExecuted,
|
2020-11-24 15:15:51 +05:30
|
|
|
none: None
|
2020-04-08 14:13:33 +05:30
|
|
|
}.freeze
|
|
|
|
|
|
|
|
def self.for(name)
|
|
|
|
STRATEGIES.fetch(name)
|
|
|
|
rescue KeyError
|
|
|
|
raise UnknownStrategyError, "Unknown deduplication strategy #{name}"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|