延迟::作业的自动重试功能很棒,但现在有一个作业我想手动重试。有没有一种方法可以调用作业本身,就像...
Delayed::Job.all[0].perform
或者跑,或者别的什么。我尝试了一些方法,并梳理了文档,但不知道如何执行作业的手动重试。
发布于 2010-10-26 11:30:28
手动调用作业的步骤
Delayed::Job.find(10).invoke_job # 10 is the job.id
如果作业成功运行,则不会删除该作业。您需要手动删除它:
Delayed::Job.find(10).destroy
发布于 2015-09-04 16:41:08
Delayed::Worker.new.run(Delayed::Job.last)
这将在作业完成后删除该作业。
发布于 2010-07-23 05:16:32
您可以完全按照您所说的方式进行操作,即找到作业并运行perform。
但是,我通常只是将run_at设置回原处,以便job processor再次拾取它。
https://stackoverflow.com/questions/3312054
复制相似问题