【发布时间】:2012-01-03 02:46:07
【问题描述】:
我有一个延迟的作业正在运行,我想在它完成时保存运行时,工作人员将运行时记录到这样的日志中......
XXXXXJob completed after 1.6372
我想知道您如何从延迟作业类中访问此统计信息?
我试过 self.runtime 但这会引发错误。
干杯。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 runtime delayed-job
我有一个延迟的作业正在运行,我想在它完成时保存运行时,工作人员将运行时记录到这样的日志中......
XXXXXJob completed after 1.6372
我想知道您如何从延迟作业类中访问此统计信息?
我试过 self.runtime 但这会引发错误。
干杯。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 runtime delayed-job
恐怕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 调用或类似的方法包装其逻辑。
【讨论】:
BaseJob 类,实现所需的逻辑并从该类派生所有作业。