ForgeTotal.js 5
hu

Total.js 5

Az alkalmazás karbantartási módba helyezése a PAUSESERVER()-rel

Total.js 5 · total5@0.0.19 maintenanceserveravailability Total.js 5-tel lefuttatva

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.

controllers/maintenance.js
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 });
}