0
我有一个延迟的工作运行,我想保存在运行时,当它结束时,工作人员会记录运行到这样的日志...在rails中获取延迟作业的运行时间?
XXXXXJob completed after 1.6372
我想知道你是如何从访问此统计在延迟的工作课内?
我试过self.runtime
但那是抛出一个错误。
干杯。
我有一个延迟的工作运行,我想保存在运行时,当它结束时,工作人员会记录运行到这样的日志...在rails中获取延迟作业的运行时间?
XXXXXJob completed after 1.6372
我想知道你是如何从访问此统计在延迟的工作课内?
我试过self.runtime
但那是抛出一个错误。
干杯。
恐怕delayed_job
宝石不用于访问统计提供API。貌似here是被它们计算运行时间的地方,这就是正在发生的事情有:
runtime = Benchmark.realtime do
invoke_job
destroy
end
logger.info "* [JOB] #{name} completed after %.4f" % runtime
所以runtime
使用Benchmark
模块计算和记录,但它不是以备后用存储在任何地方。
虽然,你仍然可以通过类似Benchmark.realtime
电话或类似的东西包裹它的逻辑计算工作自己运行。
另一种选择是开放的类和重写run方法改变的行为。 – Nick 2012-01-02 20:16:58
是的,重新开课可以解决大部分像红宝石般的问题。但这是最好的解决方案,如果可能的话,我最好避免它。即使您需要为应用程序中的每个后台作业计时,您也可以创建自己的“BaseJob”类,实现所需的逻辑并从此类中派生所有作业。 – 2012-01-02 20:24:02
在基准测试中包装工作非常完美,dj记录的时间与基准测试结果相匹配。如果需要重复使用,我会创建它自己的基础工作,但可以作为一次性工作。 – Smickie 2012-01-05 09:40:11