Resque 调度程序日志不写入日志文件

Resque scheduler log not writing to log file

我有一个配置了 resque 和 resque-scheduler 的应用程序。所有作业 运行 都很好,resque 将输出记录到其日志文件中。 resque-scheduler alos 工作正常,按预期加载和处理作业。

我遇到的一个问题是调度程序似乎没有在其日志文件中记录任何内容。

我按照此处的设置说明进行操作

https://github.com/resque/resque-scheduler#logging

并在我的初始化程序中包含此代码。

# Define the location of the schedule
Resque.schedule = YAML.load_file(Rails.root.join('config', 'scheduled_jobs.yml'))

# Define the logger
Resque::Scheduler.configure do |c|
  c.quiet = false
  c.verbose = false
  c.logfile = File.open("#{Rails.root}/log/resque_scheduler.log", 'w+')
  c.logformat = 'text'
end

启动应用程序时,会创建 resque_scheduler.log。

当我启动调度程序时,它会将以下内容输出到标准输出(我的 VM 上的终端 window)。我原以为这会进入日志文件。

$ rake resque:scheduler TERM_CHILD=1
resque-scheduler: [INFO] 2015-07-17T14:34:27+01:00: Starting
resque-scheduler: [INFO] 2015-07-17T14:34:27+01:00: Loading Schedule
resque-scheduler: [INFO] 2015-07-17T14:34:27+01:00: Scheduling daily_job_email_overdue_items_to_admin 
resque-scheduler: [INFO] 2015-07-17T14:34:27+01:00: Scheduling daily_job_to_update_status_to_overdue 
resque-scheduler: [INFO] 2015-07-17T14:34:27+01:00: Schedules Loaded

我已经在互联网上进行了搜索,但没有找到遇到同样问题的人。任何人都遇到过同样的问题或让它工作,并且可以提出我所缺少的东西。

非常感谢。

解决方法是在创建rake任务时使用LOGFILE环境变量。如果该文件不存在,那么它无论如何都会创建它。启动指定日志文件的调度程序的基本 rake 任务如下。

rake resque:scheduler LOGFILE=./log/resque_scheduler.log

感觉有点傻,我以前没有想到这一点。我只是假设调度程序会以与 resque 相同的方式工作,并从初始化程序中获取日志文件详细信息。