Improved logging for delayed job cleanup logic to reason about left over jobs scheduler restart issue.

This commit is contained in:
Thorsten Eckel 2018-04-26 10:22:09 +02:00
parent 8db4ff31cf
commit 845c9d105b

View file

@ -1,6 +1,7 @@
# Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/ # Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/
class Scheduler < ApplicationModel class Scheduler < ApplicationModel
extend ::Mixin::StartFinishLogger
# rubocop:disable Style/ClassVars # rubocop:disable Style/ClassVars
@@jobs_started = {} @@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.' raise 'This method should only get called when Scheduler.threads are initialized. Use `force: true` to start anyway.'
end end
Delayed::Job.all.each do |job| log_start_finish(:info, 'Cleanup of left over locked delayed jobs') do
cleanup_delayed(job)
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
end end
@ -172,7 +178,7 @@ class Scheduler < ApplicationModel
job.destroy job.destroy
end end
Rails.logger.warn "#{action} locked delayed job: #{job_name}" logger.warn "#{action} locked delayed job: #{job_name}"
end end
def self.start_job(job) def self.start_job(job)