是否有一种优雅的方式来重新启动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/