ant*_*nko 5 ruby ruby-on-rails worker-process task-queue
我找不到任何关于如何使queue_classic将日志写入文件的解决方案.Queue_Classic用于记录的Scrolls似乎也没有任何示例.
有人能提供一个有效的例子吗?
QC 调用的方法内的日志记录将是日志记录的来源。例如,在轨道中。对 Rails.logger 的任何调用都将转到适合您的 RAILS_ENV 的日志文件。来自滚动的日志数据会发送到标准输出,因此您可以在启动队列时将 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
Run Code Online (Sandbox Code Playgroud)
FWIW,我发现 STDOUT 日志数据没有什么帮助,最终可能只是将其发送到位桶。
如果日志数据没有用,我们应该考虑将其删除。
当我从命令行运行 DEBUG 时,它非常好用。有时,当我试图弄清楚我做了什么让一切陷入困境时(通常是捆绑问题、路径问题等)。或者有时我要演示队列中发生的情况。
对我来说,INFO 日志记录由标准 lib=queue_classic level=info action=insert_job elapsed=16 消息以及来自分叉执行或来自 PostgreSQL 的任何 STDOUT/STDERR 组成。我没有扩展任何日志记录类,因为滚动到 STDOUT 并且我的任务位于提供日志记录的环境中。
当然,它可以被删除。我认为这实际上取决于环境和队列正在做什么。如果我要做的事情没有 Rails.logger,那么我会使用 QC.log 并更有效地滚动,并以这种方式检测我的任务。
当我使用它时,我可能会保持配置不变,因为输出来自任务本身调用的方法/应用程序。我可能决定覆盖 QC.log 代码以添加日期/时间。我仍在努力确定什么适合我的需求。
抱歉,我的最后一行实际上主要关注我给出的环境示例。
原文在这里:在这里输入链接描述
| 归档时间: |
|
| 查看次数: |
348 次 |
| 最近记录: |