Delayed::Job では、例外が発生した場合、
5 秒 + リトライ回数 ** 4秒
経過した後にリトライしてくれますが、これを変更する方法です。
Delayed::Job のバージョンは、2.1.4 です。
やり方は簡単で、ジョブのクラスに、リトライ時刻を返す reschedule_at メソッドを定義します。
このメソッドは、第 1 引数に現在の時刻、第 2 引数にリトライ回数を取ります。
例: 1 時間ごとにリトライする
class HogeJob < Struct.new(:id) def perform ... end def reschedule_at(db_time_now, attempts) db_time_now + 1.hour end end