1. ホーム
  2. ruby-on-rails

Delayed_jobのジョブを手動で再試行する

2023-09-28 10:46:40

質問

Delayed::Jobの自動再試行機能は素晴らしいのですが、今、手動で再試行したいジョブがあります。ジョブ自体で呼び出せるようなメソッドはないのでしょうか?

Delayed::Job.all[0].perform

とか実行するとか、いろいろやってみました。いくつかのことを試し、ドキュメントを調べましたが、ジョブの手動再試行を実行する方法を見つけることができませんでした。

どのように解決するのですか。

手動でジョブを呼び出すには

Delayed::Job.find(10).invoke_job # 10 is the job.id

これは、ジョブが正常に実行された場合、そのジョブを削除しません。手動で削除する必要があります。

Delayed::Job.find(10).destroy