Resque工作者没有响应信号

时间:2014-04-24 05:54:13

标签: ruby-on-rails redis resque worker

我正在使用Rails应用程序中的Resque版本1.25.2。

我试图通过pause_processing调用我所获取的所有工作者的实例方法unpause_processing及其Resque::Worker的反向Resque.workers。但是,工作人员仍然继续处理动态添加到任何队列的新作业。通过instance.paused?检查状态时,每个工作人员都返回true

不确定我是否真的可以控制在后台运行的工作人员。

据我理解pause_processingunpause_processingshutdown执行与发送USR2 CONTKILL信号相同的事情Resque workers。

我错过了一些微不足道的事情,还是有另一种管理工人的方法。

1 个答案:

答案 0 :(得分:3)

这是因为您正在调用此方法并在完全不同的工作实例上修改状态。正如您can see所做的那样是设置实例变量的值。当您调用Resque.workers时,您将获得所有工作程序的实例,但不会获取其他进程中正在运行的工作程序的实例。 Resque不允许您远程修改正在运行的工作程序的状态。如果要从外部更改Resque工作器的状态,则必须通过信号与其进行交互。如果您只是调用这些方法,那么您就不会发送信号。