Mettre l'application en maintenance avec PAUSESERVER()
PAUSESERVER(name, true) met le serveur en pause et PAUSESERVER(name, false) le reprend. Tant qu'au moins un nom est en pause, chaque requête reçoit l'état 503 et la page de maintenance intégrée (une requête faite avec xhr reçoit une réponse d'erreur 503 au lieu de la page). Le nom identifie seulement qui a mis en pause, de sorte que deux parties de l'application puissent mettre en pause et reprendre indépendamment : le serveur répond de nouveau quand tous les noms ont été repris.
Sans le second argument, l'appel bascule : PAUSESERVER(name) met en pause quand le nom ne l'était pas et reprend quand il l'était, et renvoie le nouvel état (true quand il est en pause).
Comme un serveur en pause répond 503 à tout, y compris à la route qui le reprendrait, reprenez depuis votre propre code : un minuteur, un signal, une tâche qui se termine. L'exemple se met en pause pendant un court instant et reprend tout seul.
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 });
}