4

我有一个配置了 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 上的终端窗口)。我原以为这会进入日志文件。

$ 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

我已经在互联网上进行了搜索,但没有发现任何有同样问题的人。任何人都遇到过同样的问题,或者可以正常工作,并且可以提出我所缺少的内容。

非常感谢。

4

1 回答 1

8

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

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

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

于 2015-07-20T08:09:26.140 回答