ForgeTotal.js 5
pl

Total.js 5

Przełącz aplikację w tryb konserwacji przez PAUSESERVER()

Total.js 5 · total5@0.0.19 maintenanceserveravailability Uruchomiono z Total.js 5

PAUSESERVER(name, true) wstrzymuje serwer, a PAUSESERVER(name, false) go wznawia. Dopóki przynajmniej jedna nazwa jest wstrzymana, każde żądanie otrzymuje odpowiedź ze statusem 503 i wbudowaną stronę konserwacji (żądanie wykonane przez xhr dostaje zamiast strony odpowiedź błędu 503). Nazwa tylko wskazuje, kto wstrzymał, więc dwie części aplikacji mogą wstrzymywać i wznawiać niezależnie: serwer znów odpowiada, gdy wszystkie nazwy zostaną wznowione.

Bez drugiego argumentu wywołanie przełącza: PAUSESERVER(name) wstrzymuje, gdy nazwa nie była wstrzymana, i wznawia, gdy była, oraz zwraca nowy stan (true, gdy wstrzymany).

Ponieważ wstrzymany serwer odpowiada 503 na wszystko, także na trasę, która by go wznowiła, wznów go z własnego kodu: timera, sygnału, zadania, które się kończy. Przykład wstrzymuje na krótki czas i sam się wznawia.

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