Az alkalmazás karbantartási módba helyezése a PAUSESERVER()-rel
A PAUSESERVER(name, true) szünetelteti a szervert, a PAUSESERVER(name, false) pedig folytatja. Amíg legalább egy név szünetel, minden kérésre 503-as állapot és a beépített karbantartási oldal a válasz (az xhr-rel küldött kérés az oldal helyett 503-as hibaválaszt kap). A név csak azt azonosítja, ki szüneteltette, így az alkalmazás két része egymástól függetlenül szüneteltethet és folytathat: a szerver akkor válaszol újra, amikor minden nevet folytattak.
Második argumentum nélkül a hívás átkapcsol: a PAUSESERVER(name) szüneteltet, ha a név nem szünetelt, és folytat, ha szünetelt, és az új állapotot adja vissza (true, ha szünetel).
Mivel egy szüneteltetett szerver mindenre 503-mal válaszol, arra az útvonalra is, amely folytatná, a folytatást a saját kódjából végezze: időzítőből, jelzésből, egy befejeződő feladatból. A példa rövid időre szüneteltet, majd magától folytat.
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 });
}