ForgeTotal.js 5
sk

Total.js 5

Prepnite aplikáciu do údržby pomocou PAUSESERVER()

Total.js 5 · total5@0.0.19 maintenanceserveravailability Spustené s Total.js 5

PAUSESERVER(name, true) pozastaví server a PAUSESERVER(name, false) ho obnoví. Kým je pozastavený aspoň jeden názov, každá požiadavka dostane odpoveď so stavom 503 a vstavanú stránku údržby (požiadavka vykonaná cez xhr dostane namiesto stránky chybovú odpoveď 503). Názov len identifikuje, kto server pozastavil, takže dve časti aplikácie môžu pozastavovať a obnovovať nezávisle: server odpovedá znova, keď sú obnovené všetky názvy.

Bez druhého argumentu volanie prepína: PAUSESERVER(name) pozastaví, keď názov nebol pozastavený, a obnoví, keď bol, a vráti nový stav (true, keď je pozastavený).

Keďže pozastavený server odpovedá na všetko stavom 503, aj na routu, ktorá by ho obnovila, obnovte ho z vlastného kódu: časovač, signál, úloha, ktorá skončí. Príklad pozastaví na krátky čas a obnoví sa sám.

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 });
}