ForgeTotal.js 5
cs

Total.js 5

Přepněte aplikaci do údržby pomocí PAUSESERVER()

Total.js 5 · total5@0.0.19 maintenanceserveravailability Spuštěno s Total.js 5

PAUSESERVER(name, true) pozastaví server a PAUSESERVER(name, false) jej obnoví. Dokud je pozastaven alespoň jeden název, každý požadavek dostane odpověď se stavem 503 a vestavěnou stránku údržby (požadavek provedený přes xhr dostane místo stránky chybovou odpověď 503). Název jen označuje, kdo server pozastavil, takže dvě části aplikace mohou pozastavovat a obnovovat nezávisle: server znovu odpovídá, když jsou všechny názvy obnoveny.

Bez druhého argumentu volání přepíná: PAUSESERVER(name) pozastaví, když název nebyl pozastaven, a obnoví, když byl, a vrátí nový stav (true, když je pozastaven).

Protože pozastavený server odpovídá na vše stavem 503, i na routu, která by jej obnovila, obnovte jej z vlastního kódu: časovač, signál, úloha, která skončí. Příklad se pozastaví na krátkou dobu a obnoví se 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 });
}