# Pon la aplicación en mantenimiento con PAUSESERVER()

> Pausa el servidor por nombre para que cada petición reciba una página 503, reanúdalo y ten en cuenta que sin segundo argumento la llamada alterna el estado.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: es
Content-SHA256: 81104d1633b7cacd003fe45aabcbfbc9dc03ce4dc07e6d77d1a9500040e18d7e
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

`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.

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