代码之家  ›  专栏  ›  技术社区  ›  Mark Davies

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

  •  4
  • Mark Davies  · 技术社区  · 11 年前

    我有一个配置了resque和resque调度程序的应用程序。所有作业都运行良好,并将日志输出到其日志文件。resque调度程序运行良好,按预期加载和处理作业。

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

    我遵循了此处的设置说明

    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。创建日志。

    当我启动调度程序时,它将以下内容输出到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
    

    我在网上做了一次搜索,但没有找到有同样问题的人。任何人都经历过同样的问题,或者已经解决了问题,都可以提出我所缺少的东西。

    非常感谢。

    1 回复  |  直到 11 年前
        1
  •  8
  •   fbernier    8 年前

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

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

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