1

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

我正在使用上帝来监控 resque 工作人员,我浏览了God 主页,但无法找到任何相关信息,但看到它只是监控流程的宝石,我认为它没有优雅的方式去做这个。

另外,我希望在部署时自动重启工作器,我已经查看了这两种方法(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/)。如果有更好的方法,那将很有帮助。

4

1 回答 1

3

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

于 2014-11-12T07:33:01.340 回答