我有一个应用程序配置了resque和resque调度器。作业都运行良好,并将日志输出到其日志文件中。重新调度程序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。
当我启动调度器时,它会将以下内容输出到stdout (我的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我搜索过互联网,但没有发现有同样问题的人。任何人都经历过同样的问题,或者让它发挥作用,并且可以提出我所缺少的东西。
非常感谢。
发布于 2015-07-20 08:09:26
解决方案是在创建rake任务时使用LOGFILE环境变量。如果文件不存在,那么无论如何它都会创建它。启动指定日志文件的调度程序的基本rake任务如下所示。
rake resque:scheduler LOGFILE=./log/resque_scheduler.log我以前没想过这件事让我觉得有点傻。我刚刚假设调度程序将以与resque相同的方式工作,并从初始化程序获取日志文件的详细信息。
https://stackoverflow.com/questions/31477248
复制相似问题