ForgeTotal.js 5
es

Total.js 5

Pon la aplicación en mantenimiento con PAUSESERVER()

Total.js 5 · total5@0.0.19 maintenanceserveravailability Ejecutada con Total.js 5

PAUSESERVER(name, true) pausa el servidor y PAUSESERVER(name, false) lo reanuda. Mientras al menos un nombre esté en pausa, todas las peticiones se responden con el estado 503 y la página de mantenimiento incorporada (una petición hecha con xhr recibe una respuesta de error 503 en lugar de la página). El nombre solo identifica quién lo pausó, de modo que dos partes de la aplicación puedan pausar y reanudar de forma independiente: el servidor vuelve a responder cuando todos los nombres se han reanudado.

Sin el segundo argumento la llamada alterna: PAUSESERVER(name) pausa cuando el nombre no estaba en pausa y reanuda cuando lo estaba, y devuelve el nuevo estado (true cuando está en pausa).

Como un servidor en pausa responde 503 a todo, incluida la ruta que lo reanudaría, reanuda desde tu propio código: un temporizador, una señal, una tarea que termina. El ejemplo pausa durante un rato corto y se reanuda solo.

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