# Pune aplicația în mentenanță cu PAUSESERVER()

> Pune serverul în pauză după nume, astfel încât fiecare cerere să primească o pagină 503, reia-l și ține minte că fără al doilea argument apelul alternează starea.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: ro
Content-SHA256: 9b3385bc379ea0a81ae96b3ca218f787f886c1ed5058ae1f88260c6ad2dd6232
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

`PAUSESERVER(name, true)` pune serverul în pauză, iar `PAUSESERVER(name, false)` îl reia. Cât timp **cel puțin un nume** este în pauză, fiecare cerere primește starea **503** și pagina de mentenanță încorporată (o cerere făcută cu `xhr` primește un răspuns de eroare 503 în locul paginii). Numele doar identifică cine a pus în pauză, astfel încât două părți ale aplicației să poată pune în pauză și relua independent: serverul răspunde din nou când toate numele au fost reluate.

Fără al doilea argument apelul **alternează**: `PAUSESERVER(name)` pune în pauză când numele nu era în pauză și reia când era, și returnează noua stare (`true` când este în pauză).

Deoarece un server în pauză răspunde 503 la tot, inclusiv la ruta care l-ar relua, reia-l din propriul cod: un temporizator, un semnal, o sarcină care se termină. Exemplul se pune în pauză pentru scurt timp și se reia singur.

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