debian-mirror-gitlab/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executing.rb
2021-01-29 00:20:46 +05:30

22 lines
539 B
Ruby

# frozen_string_literal: true
module Gitlab
module SidekiqMiddleware
module DuplicateJobs
module Strategies
# This strategy takes a lock before scheduling the job in a queue and
# removes the lock before the job starts allowing a new job to be queued
# while a job is still executing.
class UntilExecuting < Base
include DeduplicatesWhenScheduling
def perform(_job)
duplicate_job.delete!
yield
end
end
end
end
end
end