【发布时间】:2016-10-06 07:48:59
【问题描述】:
我想在 cron 作业中运行我的脚本。此脚本创建多个 Que 作业来完成艰苦的工作。如何追踪新遗迹中每个作业的活动?
我已经阅读了这篇关于如何跟踪 cronjobs 的帖子 https://blog.newrelic.com/2012/05/30/using-new-relic-to-monitor-ruby-background-tasks/,但是由于 Que 作业是在它自己的工作人员中管理的(我使用的是 puma),所以它不会被跟踪。
这是一个尝试执行此操作的示例脚本(但它不跟踪任何内容):
class NewrelicTest
def run
Order.all.find_each do |order|
Job.enqueue(order.id)
end
end
class Job < Que::Job
include NewRelic::Agent::Instrumentation::ControllerInstrumentation
def run(id)
order = Order.find(id)
do_heavy_work_here(order)
end
add_transaction_tracer :run, :category => "OtherTransaction/cronjobs"
end
end
NewRelic::Agent.manual_start :app_name => "Background Jobs"
NewrelicTest.new.run
谢谢
【问题讨论】:
标签: ruby-on-rails ruby cron newrelic que