如何配置queue_classic日志记录

时间:2012-09-05 02:25:42

标签: ruby-on-rails ruby task-queue worker-process

我找不到任何关于如何使queue_classic将日志写入文件的解决方案。 Queue_Classic用于记录的Scrolls似乎也没有任何示例。

有人可以提供一个有效的例子吗?

1 个答案:

答案 0 :(得分:0)

QC调用的方法中的日志记录将成为日志记录的来源。例如,在rails中。对Rails.logger的任何调用都将转到适合您的RAILS_ENV的日志文件。来自滚动的日志数据转到stdout,因此您可以在启动它们时将STDOUT从队列中传输到日志文件。

您可以使用god.rb控制您的队列,给出类似于此的god.rb配置实例(我已经为您排除了队列,目录等的配置):

number_queues.times do |queue_num|
  God.watch do |w|
    w.name = "QC-#{queue_num}"
    w.group = "QC"
    w.interval = 5.minutes
    w.start = "bundle exec rake queue:work" # This is your rake task to start QC listening
    w.gid = 'nginx' 
    w.uid = 'nginx'
    w.dir = rails_root
    w.keepalive
    w.env = {"RAILS_ENV" => rails_env} 
    w.log = "#{log_dir}/qc.stdout.log"  # Or....    "#{log_dir}//qc-#{queue_num}.stdout.log"

    # determine the state on startup
    w.transition(:init, { true => :up, false => :start }) do |on|
      on.condition(:process_running) do |c|
        c.running = true
      end
    end
  end
end

number_queues.times do |queue_num| God.watch do |w| w.name = "QC-#{queue_num}" w.group = "QC" w.interval = 5.minutes w.start = "bundle exec rake queue:work" # This is your rake task to start QC listening w.gid = 'nginx' w.uid = 'nginx' w.dir = rails_root w.keepalive w.env = {"RAILS_ENV" => rails_env} w.log = "#{log_dir}/qc.stdout.log" # Or.... "#{log_dir}//qc-#{queue_num}.stdout.log" # determine the state on startup w.transition(:init, { true => :up, false => :start }) do |on| on.condition(:process_running) do |c| c.running = true end end end end FWIW,我发现STDOUT日志数据不太有用,最终可能只是将它发送到bitbucket。

如果日志数据无用,我们应该考虑将其删除。

当我从命令行运行时,DEBUG非常好用。有时候我想弄清楚我做了什么来把所有东西都搞砸了(通常捆绑问题,路径问题等等)。或者当我要演示队列中正在发生的事情时。

对我来说,INFO日志记录包含标准的lib = queue_classic level = info action = insert_job elapsed = 16消息以及来自分叉执行或PostgreSQL的任何STDOUT / STDERR。我没有扩展任何日志记录类,因为滚动转到STDOUT,我的任务在提供日志记录的环境中。

当然,它可以被删除。我认为真的取决于环境以及队列正在做什么。如果我要做一些没有Rails.logger的东西,那么我会使用QC.log并更有效地滚动并以这种方式检测我的任务。

当我玩它时,我可能会保持我的配置,因为输出来自任务本身调用的方法/应用程序。我可能决定覆盖QC.log代码来添加日期/时间。我仍在努力确定哪些符合我的需求。

抱歉,我的最后一行非常关注我给出的环境示例。

原文:enter link description here