diff options
Diffstat (limited to 'lib/gitlab/sidekiq_middleware/jobs_threads.rb')
-rw-r--r-- | lib/gitlab/sidekiq_middleware/jobs_threads.rb | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/lib/gitlab/sidekiq_middleware/jobs_threads.rb b/lib/gitlab/sidekiq_middleware/jobs_threads.rb deleted file mode 100644 index d0603bcee2d..00000000000 --- a/lib/gitlab/sidekiq_middleware/jobs_threads.rb +++ /dev/null @@ -1,49 +0,0 @@ -# frozen_string_literal: true - -module Gitlab - module SidekiqMiddleware - class JobsThreads - @@jobs = {} # rubocop:disable Style/ClassVars - MUTEX = Mutex.new - - def call(worker, job, queue) - jid = job['jid'] - - MUTEX.synchronize do - @@jobs[jid] = Thread.current - end - - return if self.class.cancelled?(jid) - - yield - ensure - MUTEX.synchronize do - @@jobs.delete(jid) - end - end - - def self.interrupt(jid) - MUTEX.synchronize do - thread = @@jobs[jid] - break unless thread - - thread.raise(Interrupt) - thread - end - end - - def self.cancelled?(jid) - Sidekiq.redis {|c| c.exists("cancelled-#{jid}") } - end - - def self.mark_job_as_cancelled(jid) - Sidekiq.redis {|c| c.setex("cancelled-#{jid}", 86400, 1) } - "Marked job as cancelled(if Sidekiq retry within 24 hours, the job will be skipped as `processed`). Jid: #{jid}" - end - - def self.jobs - @@jobs - end - end - end -end |