Metti l'applicazione in manutenzione con PAUSESERVER()
PAUSESERVER(name, true) mette in pausa il server e PAUSESERVER(name, false) lo riprende. Finché almeno un nome è in pausa, ogni richiesta riceve lo stato 503 e la pagina di manutenzione integrata (una richiesta fatta con xhr riceve una risposta di errore 503 invece della pagina). Il nome identifica solo chi ha messo in pausa, così due parti dell'applicazione possono mettere in pausa e riprendere in modo indipendente: il server risponde di nuovo quando tutti i nomi sono stati ripresi.
Senza il secondo argomento la chiamata alterna: PAUSESERVER(name) mette in pausa quando il nome non lo era e riprende quando lo era, e restituisce il nuovo stato (true quando è in pausa).
Poiché un server in pausa risponde 503 a tutto, anche alla route che lo riprenderebbe, riprendilo dal tuo codice: un timer, un segnale, un'attività che termina. L'esempio si mette in pausa per poco tempo e riprende da solo.
exports.install = function() {
ROUTE('GET /maintenance/', maintenance);
ROUTE('GET /toggle/', toggle);
ROUTE('GET /ping/', ping);
};
function maintenance($) {
const state = PAUSESERVER('maintenance', true);
setTimeout(() => PAUSESERVER('maintenance', false), 600);
$.json({ paused: state });
}
function toggle($) {
const first = PAUSESERVER('toggled');
const second = PAUSESERVER('toggled');
$.json({ first: first, second: second });
}
function ping($) {
$.json({ ok: true });
}