2012-10-21 14 views
5

Załóżmy, że wprowadzam niewielką zmianę w mojej aplikacji szyny, na przykład zmianę układu html. Jak mógłbym powtórzyć walkę z Unicornem? Czy rzeczywiście chciałoby się wprowadzić procesy jednorożca (lub robotników?) Dla najnowszej wersji aplikacji szyny, a następnie przełączać ruch ze starych procesów jednorożców/robotników na nowe atomowo. Z wyszukiwań w Google nie mogłem uzyskać konkretnego ostatecznego wyjaśnienia, jak to zrobić i wszystkich otaczających go luk.Jak wykonać toczący się restart z Unicorn?

Odpowiedz

5

Istnieje wiele sposobów, ale jednym z nich jest następująca:

  • Wysłać SIGUSR2 do procesu nadrzędnego. Jednorożec uruchamia nowy wzorzec za pomocą procesów roboczych, które działają równolegle do starych procesów nadrzędnych i starych procesów roboczych.
  • Poczekaj, aż rozpoczną się nowe procesy główne i procesy robocze.
  • Zabij starego mistrza.

Źródło: http://unicorn.bogomips.org/SIGNALS.html

To nie jest bardzo przyjazny, choć pamięć. Tymczasowo potrzebujesz dwa razy więcej pamięci.

obsługuje ponowne uruchamianie (wraz z innymi ciekawymi funkcjami), ale restartuje procesy jeden po drugim i nie wymaga tak dużo pamięci. Możliwe jest pisanie pojedynczych ponownych uruchomień w Unicorn za pomocą sygnałów TTIN i TTOUT, ale Phusion Passenger robi wszystko automatycznie bez skryptowania.