ruby-on-rails - 重新启动 resque 工作人员的优雅方式

标签 ruby-on-rails resque god

是否有一种优雅的方式来重新启动resque工作人员(例如在部署等事件之后),其中正在处理队列中某些作业的工作人员不会立即被SIGTERM或SIGKILL等信号杀死,而是应该等待工作人员完成其正在执行的任务,并在工作人员空闲时杀死该工作人员。

我正在使用上帝来监视resque worker ,我经历了God homepage但无法找到任何相关信息,但鉴于它只是一个监视进程的 gem ,我认为它没有一种优雅的方式来做到这一点。

此外,我希望在部署时自动重新启动工作程序,我已经研究了这两种方法( http://simonecarletti.com/blog/2011/02/how-to-restart-god-when-you-deploy-a-new-release/http://balazs.kutilovi.cz/2011/12/04/deploying-resque-scheduler-with-capistrano/ )。如果有更好的方法,将会很有帮助。

最佳答案

结果resque有一个选项,如果你传递信号SIGQUIT,它将等待worker完成工作,然后退出worker,并且god可以选择为进程设置停止信号。因此,您可以将“QUIT”定义为resque工作人员的stop_signal,当您停止god时,它将向工作人员发送信号SIGQUIT。

关于ruby-on-rails - 重新启动 resque 工作人员的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26405872/

相关文章:

ruby-on-rails - Ruby API 请求中的 Yahoo Oauth - 签名无效

ruby-on-rails - "heroku run rake db:migrate"问题

ruby-on-rails - Resque 找不到 ffmpeg

ruby-on-rails - 每隔几秒运行一次后台作业

ruby-on-rails - 确保加载 Rails 应用程序时某些进程正在运行

ruby-on-rails - 如何通过 has_many 计算 Rails 应用程序 View 中的平均值?

ruby-on-rails - #<HelloController :0x101d7edb0> from Controller 的未定义方法 `layout'

ruby - 如何对 Resque 执行方法或 Resque Job 类进行基准测试?

ruby-on-rails - 如何配置 Ruby God 来监控 > 1 个进程?

ruby - 如何阻止上帝留下陈旧的 Resque 工作流程?