From 845c9d105b36137dd30b9e97344e29476fa5eb81 Mon Sep 17 00:00:00 2001 From: Thorsten Eckel Date: Thu, 26 Apr 2018 10:22:09 +0200 Subject: [PATCH] Improved logging for delayed job cleanup logic to reason about left over jobs scheduler restart issue. --- app/models/scheduler.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/models/scheduler.rb b/app/models/scheduler.rb index ea05234b8..6c0576356 100644 --- a/app/models/scheduler.rb +++ b/app/models/scheduler.rb @@ -1,6 +1,7 @@ # Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/ class Scheduler < ApplicationModel + extend ::Mixin::StartFinishLogger # rubocop:disable Style/ClassVars @@jobs_started = {} @@ -120,8 +121,13 @@ class Scheduler < ApplicationModel raise 'This method should only get called when Scheduler.threads are initialized. Use `force: true` to start anyway.' end - Delayed::Job.all.each do |job| - cleanup_delayed(job) + log_start_finish(:info, 'Cleanup of left over locked delayed jobs') do + + Delayed::Job.all.each do |job| + log_start_finish(:info, "Checking left over delayed job #{job.inspect}") do + cleanup_delayed(job) + end + end end end @@ -172,7 +178,7 @@ class Scheduler < ApplicationModel job.destroy end - Rails.logger.warn "#{action} locked delayed job: #{job_name}" + logger.warn "#{action} locked delayed job: #{job_name}" end def self.start_job(job)