在rails中获取延迟作业的运行时间?

时间:2012-01-02 18:30:12

标签: ruby-on-rails ruby ruby-on-rails-3 runtime delayed-job

我有一个延迟的作业运行,我希望在完成后保存运行时,工作人员将运行时记录到这样的日志......

XXXXXJob completed after 1.6372

我想知道你如何从延迟的工作类中访问这个统计数据?

我已经尝试了self.runtime但是这会引发错误。

干杯。

1 个答案:

答案 0 :(得分:1)

我担心delayed_job gem不提供用于访问该统计信息的API。看起来here是他们计算运行时间的地方,那就是那里发生的事情:

runtime = Benchmark.realtime do
  invoke_job
  destroy
end
logger.info "* [JOB] #{name} completed after %.4f" % runtime

所以runtime是使用Benchmark模块计算并记录的,但它没有存储在任何地方供以后使用。

尽管如此,您仍然可以通过使用类似的Benchmark.realtime调用或类似的方式包装其逻辑来自己计算作业的运行时间。