delayed_job:如何强制处理失败的作业

Evg*_*ova 3 delayed-job ruby-on-rails-3

我正在维护一个rails应用程序,我正在运行delayed_job gem来发送电子邮件.

我刚刚注意到,由于应用程序中存在错误,我所有延迟的工作都在最近几天失败了.现在错误已经修复,我想尽快处理作业,但是他们已经有太多失败的尝试,并且工作人员将他们从数据库中拉出来并且有很大的延迟.

我尝试过更新delayed_jobs表并将尝试次数设置为较小的数字,将run_at属性设置为当前时间,但仍然没有帮助.

你能告诉我怎么强迫工人执行它们?

小智 10

您可以手动启动它,尝试

Delayed::Job.all.each { |j| j.invoke_job }
Run Code Online (Sandbox Code Playgroud)

要么

Delayed::Job.all.each { |j| j.payload_object.perform }
Run Code Online (Sandbox Code Playgroud)