你如何告诉一个特定的 Delayed::Job 在控制台中运行?

Posted

技术标签:

【中文标题】你如何告诉一个特定的 Delayed::Job 在控制台中运行?【英文标题】:How do you tell a specific Delayed::Job to run in console? 【发布时间】:2011-10-20 05:40:17 【问题描述】:

由于某种原因,Delayed::Job's 决定排队但不执行任何操作,即使我已经重新启动了几次,甚至杀死 -9 并重新启动它。它不会运行任何作业。

我可以在 /console 中指定一个特定的工作并告诉它工作吗?

例如:..Delayed::Job.find(x).run

【问题讨论】:

Manually Retry Job in Delayed_job的可能重复 【参考方案1】:

你也可以这样做:

Delayed::Worker.new.run( Delayed::Job.find(x) ) 

【讨论】:

这是最好的答案,它会在完成后删除工作。谢谢 Delayed::Worker.new.run(Delayed::Job.find(id)) 我同意@mrt 的评论,你应该确保你运行正确的工作 如果我想运行特定队列的多个延迟作业,我该怎么做?请帮忙 唯一不会做的就是将该行标记为锁定。【参考方案2】:

回答如何从控制台运行特定作业:

Delayed::Job.find(x).invoke_job

但您必须记住,它不会运行任何其他操作,例如破坏已完成的作业等。只是运行作业/任务。

【讨论】:

仔细阅读答案的作者注释:“它不会运行任何其他事情,例如破坏已完成的工作”。我这么说是因为我没有读过它,而且我快疯了。检查@DavidTuite's answer【参考方案3】:

在 Heroku 上,我有一个“卡住”的工作,只需要运行 heroku restart 让工人/工作重新开始。

【讨论】:

感谢您的积极评价 ;-) 可能是提问的人(或提出这个问题的人)在 Heroku 上遇到了问题。

以上是关于你如何告诉一个特定的 Delayed::Job 在控制台中运行?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Delayed::Job 时使用 ActiveJob 设置优先级

未初始化的常量 Delayed::Job

如何查看延迟的作业队列?

如何告诉NPM在哪里安装特定文件?

你如何告诉神经网络的层去寻找/寻找特定的特征,比如眼睛和边缘?

如何告诉 Python 脚本使用特定版本