特定の時間内に処理されない場合、ジョブをタイムアウトさせる機能を実装する必要があります。resqueジョブのタイムアウトを設定する方法
ジョブが作成されたが、キューが長すぎたり、作業に時間がかかりすぎたりして1時間以内に処理できないとします。
私はそのような場合に削除されるべき仕事を望んでいません...それを行うための最善の方法は何ですか?おそらく、私が監督している設定パラメータやサードパーティの宝石がありますか?
おかげ
特定の時間内に処理されない場合、ジョブをタイムアウトさせる機能を実装する必要があります。resqueジョブのタイムアウトを設定する方法
ジョブが作成されたが、キューが長すぎたり、作業に時間がかかりすぎたりして1時間以内に処理できないとします。
私はそのような場合に削除されるべき仕事を望んでいません...それを行うための最善の方法は何ですか?おそらく、私が監督している設定パラメータやサードパーティの宝石がありますか?
おかげ
デフォルトでResqueでこれを行う方法があるかどうかはわからないが、自分で行うのは難しいことではないでしょう。 、
def perform(id, queued_at)
return false unless Time.parse(queued_at) >= 1.hour.ago
...
end
とジョブをキューに入れるために実行します:あなたの仕事で
はこのような何かをResque.enqueue(MyJobClass、object.id、DateTime.now)。 1行目はジョブを自動的にダンプし、1時間以上前にキューに入れられた場合に実行されないようにします。
https://rubygems.org/gems/resque-timeoutは、ジョブをタイムアウトさせるはずの宝石です。それが削除されたかどうかわからない場合は、 – ScottJShea
が既にチェックされています。私が探していたものではありません:( – Matthias