【问题标题】:Resque worker not responding to signalsResque 工作人员没有响应信号
【发布时间】:2014-05-04 11:34:49
【问题描述】:

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

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

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

据我所知,pause_processingunpause_processingshutdown 的作用与向 Resque 工作人员发送 USR2 CONTKILL 信号相同。

我是否遗漏了一些琐碎的事情,或者是否有其他方法来管理工人。

【问题讨论】:

  • 谁能指出我正确的方向?

标签: ruby-on-rails redis resque worker


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-06-14
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    相关资源
    最近更新 更多