2014-10-16 72 views
1

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

我使用上帝来监控resque工人,我经历了God homepage,但无法找到任何相同的信息,但看到它只是一个宝石来监控进程我不认为它有一个优美的这样做的方法。

此外,我正在寻找做部署自动工人重新启动,我已经看过这两种方法(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/)。如果有更好的方法,这将是很有帮助的。

回答

3

结果resque有一个选项,如果您通过SIGQUIT信号,它将等待工作人员完成工作,然后退出工作人员,上帝可以选择为该过程设置停止信号。因此,您可以将'QUIT'定义为resque工作人员的stop_signal,当您停止上帝时,它会将信号SIGQUIT发送给工作人员。