diff options
Diffstat (limited to 'lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies.rb')
-rw-r--r-- | lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies.rb b/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies.rb new file mode 100644 index 00000000000..a08310a58ff --- /dev/null +++ b/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +module Gitlab + module SidekiqMiddleware + module DuplicateJobs + module Strategies + UnknownStrategyError = Class.new(StandardError) + + STRATEGIES = { + until_executing: UntilExecuting + }.freeze + + def self.for(name) + STRATEGIES.fetch(name) + rescue KeyError + raise UnknownStrategyError, "Unknown deduplication strategy #{name}" + end + end + end + end +end |