背景
-
DelayedJob
のmax_attempts
を多めに設定している (デフォルトの25回など) - 次回のジョブの実行まで長い時間がかかりそうで手動で再実行したい
やったこと
-
delayed_jobs
テーブルのattempts
を 0 に変更して、即時実行した
Delayed::Job.all.each do |dj|
dj.run_at = Time.now;
dj.attempts = 0;
dj.save!
end
注意点
- 上のコードではそのとき実行されているジョブのデータを変更してしまうことがある
-
locked_at
,last_error
などのカラムを使って対象としたいジョブのみに絞って実行すればよい
-