# Zet de applicatie in onderhoud met PAUSESERVER()

> Pauzeer de server op naam zodat elk verzoek een 503-pagina krijgt, hervat hem en weet dat de aanroep zonder tweede argument omschakelt.

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

`PAUSESERVER(name, true)` pauzeert de server en `PAUSESERVER(name, false)` hervat hem. Zolang **ten minste één naam** gepauzeerd is, wordt elk verzoek beantwoord met de status **503** en de ingebouwde onderhoudspagina (een verzoek met `xhr` krijgt een 503-foutantwoord in plaats van de pagina). De naam geeft alleen aan wie heeft gepauzeerd, zodat twee delen van de applicatie onafhankelijk kunnen pauzeren en hervatten: de server antwoordt weer wanneer alle namen zijn hervat.

Zonder het tweede argument **schakelt** de aanroep **om**: `PAUSESERVER(name)` pauzeert als de naam niet gepauzeerd was en hervat als dat wel zo was, en geeft de nieuwe status terug (`true` als gepauzeerd).

Omdat een gepauzeerde server alles met 503 beantwoordt, ook de route die hem zou hervatten, hervat je vanuit je eigen code: een timer, een signaal, een taak die eindigt. Het voorbeeld pauzeert korte tijd en hervat zichzelf.

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