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

Tri*_*rip 93 ruby-on-rails delayed-job

出于某种原因,Delayed :: Job已经决定排队但不会执行任何操作,即使我已经重启了几次,甚至杀了它并重新启动它.它不会运行任何工作.

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

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

Dav*_*ite 155

你也可以这样做:

Delayed::Worker.new.run( Delayed::Job.find(x) ) 
Run Code Online (Sandbox Code Playgroud)

  • 这是最好的答案,它在完成后删除了一份工作.谢谢 (25认同)
  • 延迟:: Worker.new.run(延迟:: Job.find(ID)) (12认同)

sch*_*iza 126

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

Delayed::Job.find(x).invoke_job

但是你必须记住,它不会运行任何其他东西,比如破坏已经完成的工作等等.只是运行工作/任务.

  • 仔细阅读答案的作者说明:_"它不会运行任何其他事情,比如破坏已完成的工作"_.我之所以这么说,是因为我没有读过它而我变得疯狂.查看[@ DavidTuite的回答](http://stackoverflow.com/a/20146200/316700) (3认同)