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
This commit is contained in:
David Taylor 2019-03-06 12:50:15 +00:00
parent 3ff0800e50
commit df474bceee
1 changed files with 6 additions and 2 deletions

View File

@ -65,7 +65,11 @@ module Jobs
end end
def self.raw_log(message) 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_queue ||= Queue.new
@@log_thread ||= Thread.new do @@log_thread ||= Thread.new do
begin begin
@ -99,7 +103,7 @@ module Jobs
begin begin
loop do loop do
sleep interval.to_i 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 end
rescue Exception => e rescue Exception => e
Discourse.warn_exception(e, message: "Sidekiq interval logging thread terminated unexpectedly") Discourse.warn_exception(e, message: "Sidekiq interval logging thread terminated unexpectedly")