# Przełącz aplikację w tryb konserwacji przez PAUSESERVER()

> Wstrzymaj serwer po nazwie, aby każde żądanie dostawało stronę 503, wznów go i pamiętaj, że bez drugiego argumentu wywołanie przełącza stan.

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

`PAUSESERVER(name, true)` wstrzymuje serwer, a `PAUSESERVER(name, false)` go wznawia. Dopóki **przynajmniej jedna nazwa** jest wstrzymana, każde żądanie otrzymuje odpowiedź ze statusem **503** i wbudowaną stronę konserwacji (żądanie wykonane przez `xhr` dostaje zamiast strony odpowiedź błędu 503). Nazwa tylko wskazuje, kto wstrzymał, więc dwie części aplikacji mogą wstrzymywać i wznawiać niezależnie: serwer znów odpowiada, gdy wszystkie nazwy zostaną wznowione.

Bez drugiego argumentu wywołanie **przełącza**: `PAUSESERVER(name)` wstrzymuje, gdy nazwa nie była wstrzymana, i wznawia, gdy była, oraz zwraca nowy stan (`true`, gdy wstrzymany).

Ponieważ wstrzymany serwer odpowiada 503 na wszystko, także na trasę, która by go wznowiła, wznów go z własnego kodu: timera, sygnału, zadania, które się kończy. Przykład wstrzymuje na krótki czas i sam się wznawia.

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