Resque作业,如何停止运行作业

Ayd*_*kov 10 ruby-on-rails delayed-job resque

我的Resque工人班

class WebWorker

  @queue = :jobs_queue

  def self.perform(id)
  //bunch of code here
  end
end
Run Code Online (Sandbox Code Playgroud)

我从队列中删除了这样的某个工作

Resque.dequeue(WebWorker,id)
Run Code Online (Sandbox Code Playgroud)

但是我想停止运行并重新启动,我该怎么做?

joa*_*aga 13

尝试unregister_worker如下:

Resque.workers.each(&:unregister_worker)
Run Code Online (Sandbox Code Playgroud)

此命令将停止工作并将其设置为失败.

http://www.rubydoc.info/gems/resque/Resque/Worker:unregister_worker

  • 这不仅会停止正在运行的作业,还会永久停止整个工作线程,并且没有好的方法可以恢复它(只有重新启动 resque 服务器才能将其恢复)。 (4认同)