Skip to content

Commit 4e4ff0b

Browse files
committed
Add logging for background tasks and create separate log directories
* Introduced a dedicated log directory for background daemon tasks. * Implemented task-specific logging to capture detailed information for each background task. * Adjusted reminder interval from 10 minutes to 1 minute for more frequent updates.
1 parent 469dc0a commit 4e4ff0b

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

script/background_daemon

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ require 'logger'
1212
root_dir = File.expand_path('../', File.dirname(__FILE__))
1313
pid_dir = root_dir + '/tmp/pids'
1414
log_dir = root_dir + '/log'
15+
background_daemon_log_dir = root_dir + '/logs/background_daemon'
1516
FileUtils.mkdir_p(pid_dir)
1617
FileUtils.mkdir_p(log_dir)
18+
FileUtils.mkdir_p(background_daemon_log_dir)
1719

1820
def exception_to_str(e)
1921
e.message + "\n" + e.backtrace.join("\n from ")
@@ -42,10 +44,22 @@ Rails.logger.info 'Starting background_daemon'
4244
# block other ones.
4345
processes = BackgroundTaskRegistry.all_tasks.map do |task|
4446
Process.fork do
47+
# Create individual logger for this task
48+
task_log_file = File.join(background_daemon_log_dir, "#{task.class.name.underscore}.log")
49+
task_logger = Logger.new(task_log_file)
50+
task_logger.formatter = proc do |severity, datetime, progname, msg|
51+
"#{datetime}: #{severity} - #{msg}\n"
52+
end
53+
task_logger.auto_flushing = true if task_logger.respond_to? :auto_flushing=
54+
55+
# Set up Rails logger for this process to use the task-specific logger
56+
Rails.logger = task_logger
57+
58+
Rails.logger.info "Starting #{task.class.name} background task"
4559
last_reminder_time = nil
4660
loop do
4761
begin
48-
if last_reminder_time.nil? || Time.zone.now - last_reminder_time > 10.minutes
62+
if last_reminder_time.nil? || Time.zone.now - last_reminder_time > 1.minutes
4963
Rails.logger.info "Occasional reminder that #{task.class.name} is running."
5064
last_reminder_time = Time.zone.now
5165
end

0 commit comments

Comments
 (0)