# Přepněte aplikaci do údržby pomocí PAUSESERVER()

> Pozastavte server podle názvu, aby každý požadavek dostal stránku 503, obnovte jej a pamatujte, že bez druhého argumentu volání přepíná stav.

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

`PAUSESERVER(name, true)` pozastaví server a `PAUSESERVER(name, false)` jej obnoví. Dokud je pozastaven **alespoň jeden název**, každý požadavek dostane odpověď se stavem **503** a vestavěnou stránku údržby (požadavek provedený přes `xhr` dostane místo stránky chybovou odpověď 503). Název jen označuje, kdo server pozastavil, takže dvě části aplikace mohou pozastavovat a obnovovat nezávisle: server znovu odpovídá, když jsou všechny názvy obnoveny.

Bez druhého argumentu volání **přepíná**: `PAUSESERVER(name)` pozastaví, když název nebyl pozastaven, a obnoví, když byl, a vrátí nový stav (`true`, když je pozastaven).

Protože pozastavený server odpovídá na vše stavem 503, i na routu, která by jej obnovila, obnovte jej z vlastního kódu: časovač, signál, úloha, která skončí. Příklad se pozastaví na krátkou dobu a obnoví se sám.

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