0

프로덕션 변경 사항을 푸시하는 가장 좋은 방법은 서버 A와 B 세트를 사용하는 것이고 클라이언트가 B 웹 사이트를 제공하고 B에서 업데이트를 푸시하는 것입니다. 서비스의 연속성을 보장하려면 A < -> B를 전환하십시오. 그러나 이것은 카피 스트라 노 (Capistrano)에게 함축하기가 다소 어려움을 느낍니다. (카피 스트라노 간격으로 서버를 재시작하여 서비스 연속성 보장

현재 Amazon Cloud에는 자동 축소 된 풀이 있습니다. capistrano를 사용하여 my deploy 명령은 모든 서버에 업데이트를 배포하고 동시에 모두 다시 시작합니다. 승객이 다시 시작되는 기간에는 프로덕션 서버의 작동 중지 시간이 있습니다 (다시 시작하는 데 최대 10 초가 걸릴 수 있습니다).

이 문제를 방지하려면 한 번에 하나씩 서버를 다시 시작하고 다음 서버를 다시 시작하기 전에 x 초 동안 기다려야합니다. 온라인에 두 가지 버전의 코드가 있는지 상관 없습니다. 내가 생각하고있는 목표 시나리오는 작은 핫픽스를 배포하는 것입니다.)

다음 서버에서 명령을 시작하기 전에 일정 시간 대기하도록 Capistrano 다시 시작 작업을 무시할 수 있습니까? 나는 실제로 내 서버를 다시 시작하기위한 카피 스트라 노 - 여객를 사용하고

on :all, in: :sequence, wait: 15 do 
    # Your restart task 
end 
+0

난 당신이 꽤 많이 재사용 할 수 있다고 생각 : http://stackoverflow.com/questions/8810339/capistrano-sequential-restarts – Ivan

답변

0

, 난 그냥 이미 그렇게하는 것 같습니다 set :passenger_restart_wait, 5 명령 거기에 발견 :