Die Anwendung mit PAUSESERVER() in Wartung setzen
PAUSESERVER(name, true) pausiert den Server und PAUSESERVER(name, false) setzt ihn fort. Solange mindestens ein Name pausiert ist, wird jede Anfrage mit dem Status 503 und der eingebauten Wartungsseite beantwortet (eine mit xhr gestellte Anfrage erhält statt der Seite eine 503-Fehlerantwort). Der Name identifiziert nur, wer pausiert hat, sodass zwei Teile der Anwendung unabhängig voneinander pausieren und fortsetzen können: Der Server antwortet wieder, wenn alle Namen fortgesetzt wurden.
Ohne das zweite Argument schaltet der Aufruf um: PAUSESERVER(name) pausiert, wenn der Name nicht pausiert war, und setzt fort, wenn er es war, und gibt den neuen Zustand zurück (true, wenn pausiert).
Da ein pausierter Server alles mit 503 beantwortet, auch die Route, die ihn fortsetzen würde, setze ihn aus deinem eigenen Code fort: ein Timer, ein Signal, eine Aufgabe, die endet. Das Beispiel pausiert für kurze Zeit und setzt sich selbst fort.
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 });
}