非常に正確な時間にプロセスを実行したい。現在、遅延ジョブを使用しています:
handle_asynchronously :make_live, :run_at => (exact_time_down_to_the_second)
しかし、それはまったく正確ではありません。たとえば、私がするとき:
handle_asynchronously :make_live, :run_at => (Time.now + 30.seconds)
...30 秒 +/- 15 秒で実行されます。後続の試行は 6 秒以内に発生しTime.now
、場合によってはほぼ瞬時に発生します。
これを行う正確な方法はありますか?遅れた仕事にとらわれない。
編集
私がする時:
handle_asynchronously :make_live, :run_at => Proc.new {|event| event.occurs_at }
...うまく機能します(キューを秒単位でポーリングするようです)。短い間隔 (30 秒) を使用している場合でも。
うまく機能していないのは、コンソールのテストだけのようです。
それで、今のところ私の問題は解決します。