3
신 (godrb.com)을 사용하여 응용 프로그램을 배포 할 때 기존 프로세스의 상태에 관계없이 새로운 프로세스를 시작하는 방법을 작성하려고합니다. 기존 프로세스는 현재 태스크를 완료하는 데 긴 실행 시간 초과가 필요하지만 새 프로세스는 새로 배치 된 코드를 사용하여 즉시 시작되어야합니다.신 - 기존 프로세스가 아직 중지되는 동안 새 프로세스가 시작됩니다.
현재 내가 지금 멈추었을 때 300 초의 시간 제한을 설정했지만 새 프로세스를 시작하기 전에 300 초를 기다립니다. 이 경우
God.watch do |w|
w.name = "sidekiq"
w.interval = 30.seconds
w.start = "bash -lc 'cd /path/to/current && ./bin/sidekiq -P /path/to/shared/pids/sidekiq.pid'"
w.stop = "bash -lc 'kill -USR1 `cat /path/to/shared/pids/sidekiq.pid`'"
w.stop_timeout = 300.seconds
w.pid_file = "/path/to/shared/pids/sidekiq.pid"
w.behavior(:clean_pid_file)
end
는
kill -USR1
는 현재 작업을 처리 할 때 sidekiq하지만, 일을 더 이상하지에 알려줍니다.
기존 작업자에게는 300 초의 시간 제한을 유지하고 싶지만 kill 명령을 실행하자마자 새 프로세스를 시작하고 싶습니다.
는 유니콘이 어떻게하는지 봤어? 새로운 노동자를 데려오고 새로운 노동자가 오래된 노동자를 죽이게하는 것은 유니콘의 책임입니다. – d11wtq
예,하지만 그 기능은 Unicorn의 일부입니다. 나는 일반적인 프로세스와 비슷한 것을 성취하려고 노력하고있다. – bensie