我想在非常精確的時間運行一個進程。現在我正在使用延遲作業:簡單查詢:如何在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