Przełącz aplikację w tryb konserwacji przez PAUSESERVER()
PAUSESERVER(name, true) wstrzymuje serwer, a PAUSESERVER(name, false) go wznawia. Dopóki przynajmniej jedna nazwa jest wstrzymana, każde żądanie otrzymuje odpowiedź ze statusem 503 i wbudowaną stronę konserwacji (żądanie wykonane przez xhr dostaje zamiast strony odpowiedź błędu 503). Nazwa tylko wskazuje, kto wstrzymał, więc dwie części aplikacji mogą wstrzymywać i wznawiać niezależnie: serwer znów odpowiada, gdy wszystkie nazwy zostaną wznowione.
Bez drugiego argumentu wywołanie przełącza: PAUSESERVER(name) wstrzymuje, gdy nazwa nie była wstrzymana, i wznawia, gdy była, oraz zwraca nowy stan (true, gdy wstrzymany).
Ponieważ wstrzymany serwer odpowiada 503 na wszystko, także na trasę, która by go wznowiła, wznów go z własnego kodu: timera, sygnału, zadania, które się kończy. Przykład wstrzymuje na krótki czas i sam się wznawia.
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 });
}