ForgeTotal.js 5
pt

Total.js 5

Ponha a aplicação em manutenção com PAUSESERVER()

Total.js 5 · total5@0.0.19 maintenanceserveravailability Executada com o Total.js 5

PAUSESERVER(name, true) pausa o servidor e PAUSESERVER(name, false) retoma-o. Enquanto pelo menos um nome estiver em pausa, todos os pedidos são respondidos com o estado 503 e a página de manutenção incorporada (um pedido feito com xhr recebe uma resposta de erro 503 em vez da página). O nome apenas identifica quem pausou, de modo que duas partes da aplicação possam pausar e retomar de forma independente: o servidor volta a responder quando todos os nomes foram retomados.

Sem o segundo argumento a chamada alterna: PAUSESERVER(name) pausa quando o nome não estava em pausa e retoma quando estava, e devolve o novo estado (true quando está em pausa).

Como um servidor em pausa responde 503 a tudo, incluindo à rota que o retomaria, retome a partir do seu próprio código: um temporizador, um sinal, uma tarefa que termina. O exemplo pausa por pouco tempo e retoma sozinho.

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