2014-10-16 2 views
1

대기열에서 작업을 처리하고 있던 작업자가 SIGTERM이나 SIGKILL과 같은 시그널에 의해 즉시 죽지 않는 resque worker를 재시작하는 좋은 방법이 있습니까? 오히려 그것은 작업자가하고있는 일을 끝내고 그것이 자유롭게 될 때 작업자를 죽일 때까지 기다려야합니다.resque worker를 재시작하는 우아한 방법

나는 resque worker를 모니터하기 위해 신을 사용하고 있는데, 나는 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 worker의 stop_signal로 정의 할 수 있으며, 신을 멈추게되면 SIGQUIT를 작업자에게 보내 게됩니다.

관련 문제