Welcome to mirror list, hosted at ThFree Co, Russian Federation.

monitor.rb « sidekiq_middleware « gitlab « lib - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: d38fed3b768ff0daac810f1822e8302e7ff1b3fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# frozen_string_literal: true

require 'sidekiq/job_retry'

module Gitlab
  module SidekiqMiddleware
    class Monitor
      def call(worker, job, queue)
        Gitlab::SidekiqDaemon::Monitor.instance.within_job(worker.class, job['jid'], queue) do
          yield
        end
      rescue Gitlab::SidekiqDaemon::Monitor::CancelledError
        # push job to DeadSet
        payload = ::Sidekiq.dump_json(job)
        ::Sidekiq::DeadSet.new.kill(payload, notify_failure: false)

        # ignore retries
        raise ::Sidekiq::JobRetry::Skip
      end
    end
  end
end