From df474bceee6a657195896539e8baff51e43358a0 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Wed, 6 Mar 2019 12:50:15 +0000 Subject: [PATCH] DEV: Further sidekiq logging stability improvements - Open the log file in "append" mode. This avoids issues if the file does not exist (and matches standard rails log behavior) - Correctly parse the interval logging environment variable --- app/jobs/base.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/jobs/base.rb b/app/jobs/base.rb index 648cca60c25..aec6fd86de9 100644 --- a/app/jobs/base.rb +++ b/app/jobs/base.rb @@ -65,7 +65,11 @@ module Jobs end def self.raw_log(message) - @@logger ||= Logger.new("#{Rails.root}/log/sidekiq.log") + @@logger ||= begin + f = File.open "#{Rails.root}/log/sidekiq.log", "a" + f.sync = true + Logger.new f + end @@log_queue ||= Queue.new @@log_thread ||= Thread.new do begin @@ -99,7 +103,7 @@ module Jobs begin loop do sleep interval.to_i - @@active_jobs.each { |j| j.write_to_log if j.current_duration > interval } + @@active_jobs.each { |j| j.write_to_log if j.current_duration > interval.to_i } end rescue Exception => e Discourse.warn_exception(e, message: "Sidekiq interval logging thread terminated unexpectedly")