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 = {
|
2023-03-04 22:38:38 +05:30
|
|
|
until_executing: ::Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies::UntilExecuting,
|
|
|
|
until_executed: ::Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies::UntilExecuted,
|
|
|
|
none: ::Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies::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
|