0

Я знаю, что наилучшая практика для подталкивания изменений к производству заключается в том, чтобы иметь наборы серверов A и B, чтобы A обслуживал веб-сайт для клиента, чтобы нажать обновление на B а затем переключите A < -> B, чтобы обеспечить непрерывность обслуживания. Но это чувство, похоже, трудно смириться с Capistrano (?)Капистрановые интервалы между перезапусками серверов для обеспечения непрерывности обслуживания

В настоящее время у меня есть пул автомасштабированных серверов на облаке Амазонки. Используя capistrano, моя команда развертывания развернет обновление на всех серверах и одновременно перезапустит их. В период, когда пассажир перезагружается, на моем производственном сервере есть время простоя (и перезапуск может занять до 10 секунд, так что это проблема).

Чтобы избежать этого, я хотел бы перезагрузить сервер по одному и подождать x секунд, прежде чем перезапустить следующий сервер (я не против, если у меня есть 2 разных версии кода в Интернете, целевой сценарий, который я имею в виду, развертывает небольшое исправление)

Есть ли способ переопределить задачу перезапуска Capistrano, чтобы подождать некоторое время перед запуском команды на следующем сервере?

+0

Я думаю, что вы можете в значительной степени повторного использования этого: http://stackoverflow.com/questions/8810339/capistrano-sequential-restarts – Ivan

ответ

0

Я на самом деле с помощью Capistrano-Пассажирам перезагрузки моего сервера, и я только что заметил, что есть set :passenger_restart_wait, 5 команда, которая, кажется, сделать это уже!

From the gem readme

1

Это построен в:

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

 Смежные вопросы

  • Нет связанных вопросов^_^