我想在非常精确的时间运行一个进程。现在我正在使用延迟作业:简单查询:如何在Rails中精确安排工作?
handle_asynchronously :make_live, :run_at => (exact_time_down_to_the_second)
但它并不准确。例如,当我这样做时:
handle_asynchronously :make_live, :run_at => (Time.now + 30.seconds)
......它在30秒钟+/- 15秒内执行。随后的尝试发生在Time.now
左右的6秒钟内,有时几乎立即发生。
是否有确切的方法来做到这一点?不要拖延工作。
编辑
当我这样做:
handle_asynchronously :make_live, :run_at => Proc.new {|event| event.occurs_at }
...它运作良好,(似乎对队列的查询精确到秒)。即使使用短时间间隔(30秒)。
它看起来像只是控制台测试工作不好。
这样就解决了我现在的问题。
我会检查出每当。顺便说一句,我只在队列中测试一项工作;应用程序本身永远不会超过4个,间隔一天左右。 – bevanb