diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2019-08-21 12:03:42 +0200 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2019-08-21 13:21:55 +0200 |
commit | 8d17c4dae6b4662dddffe9e2ddca8100e8cd3d0b (patch) | |
tree | f13731d3bdb703e868517403afd83f92d965ea7e /lib | |
parent | cb193cd6b54ee9ac0cf87650100585293540abfa (diff) | |
download | gitlab-ce-8d17c4dae6b4662dddffe9e2ddca8100e8cd3d0b.tar.gz |
Properly handle `sidekiq` skipsidekiq-interrupt-running-jobs
Transform `CancelledError` into `JobRetry::Skip`
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/sidekiq_middleware/monitor.rb | 3 | ||||
-rw-r--r-- | lib/gitlab/sidekiq_monitor.rb | 12 |
2 files changed, 9 insertions, 6 deletions
diff --git a/lib/gitlab/sidekiq_middleware/monitor.rb b/lib/gitlab/sidekiq_middleware/monitor.rb index 2d0e5a6d635..0d88fe760d3 100644 --- a/lib/gitlab/sidekiq_middleware/monitor.rb +++ b/lib/gitlab/sidekiq_middleware/monitor.rb @@ -7,6 +7,9 @@ module Gitlab Gitlab::SidekiqMonitor.instance.within_job(job['jid'], queue) do yield end + rescue Gitlab::SidekiqMonitor::CancelledError + # ignore retries + raise Sidekiq::JobRetry::Skip end end end diff --git a/lib/gitlab/sidekiq_monitor.rb b/lib/gitlab/sidekiq_monitor.rb index 9ec3be48adb..9842f1f53f7 100644 --- a/lib/gitlab/sidekiq_monitor.rb +++ b/lib/gitlab/sidekiq_monitor.rb @@ -30,7 +30,7 @@ module Gitlab if cancelled?(jid) Sidekiq.logger.warn( - class: self.class, + class: self.class.to_s, action: 'run', queue: queue, jid: jid, @@ -62,7 +62,7 @@ module Gitlab def start_working Sidekiq.logger.info( - class: self.class, + class: self.class.to_s, action: 'start', message: 'Starting Monitor Daemon' ) @@ -74,7 +74,7 @@ module Gitlab ensure Sidekiq.logger.warn( - class: self.class, + class: self.class.to_s, action: 'stop', message: 'Stopping Monitor Daemon' ) @@ -94,7 +94,7 @@ module Gitlab end rescue Exception => e # rubocop:disable Lint/RescueException Sidekiq.logger.warn( - class: self.class, + class: self.class.to_s, action: 'exception', message: e.message ) @@ -105,7 +105,7 @@ module Gitlab def process_message(message) Sidekiq.logger.info( - class: self.class, + class: self.class.to_s, channel: NOTIFICATION_CHANNEL, message: 'Received payload on channel', payload: message @@ -139,7 +139,7 @@ module Gitlab # running job find_thread_with_lock(jid) do |thread| Sidekiq.logger.warn( - class: self.class, + class: self.class.to_s, action: 'cancel', message: 'Canceling thread with CancelledError', jid: jid, |