Supponiamo di apportare qualche modifica alla mia app per rotaie, come cambiare il layout html. Come farei un riavvio a rotazione con Unicorn? In effetti si vorrebbe far apparire i processi di unicorno (o lavoratori invece?) Per la versione più recente dell'app rails e quindi passare il traffico dai vecchi processi/lavoratori unicorno a quelli nuovi atomicamente. Dalle ricerche su Google non sono riuscito a ottenere una spiegazione definitiva concreta su come fare questo e tutti i trucchi che la circondano.Come eseguire il riavvio a rotazione con Unicorn?
5
A
risposta
5
Ci sono diversi metodi, ma uno di loro è la seguente:
- Invia SIGUSR2 al processo master. L'unicorno avvia un nuovo master con i processi di lavoro, che vivono in parallelo con i tuoi vecchi processi master e vecchi.
- Attendere fino all'avvio dei nuovi processi master e di lavoro.
- Uccidere il vecchio maestro.
Fonte: http://unicorn.bogomips.org/SIGNALS.html
Questo non è molto gentile anche se la memoria. È temporaneamente necessario il doppio dell'utilizzo della memoria.
Phusion Passenger Enterprise supporta il riavvio a rotazione (insieme ad altre funzioni interessanti) ma riavvia i processi uno a uno e quindi non ha bisogno di tanta memoria. È possibile eseguire il riavvio uno dopo l'altro in Unicorn utilizzando i segnali TTIN e TTOUT, ma Phusion Passenger esegue tutto automaticamente per te senza script.