Uživatelský manuál
Stručný průvodce
Dashboard
Přehledy
Detail případu (Caseoverview)
Případ - Událost
Úkoly
Poznámky případu
Dokumenty
Nastavení uživatele
Oblíbené
Komponenta tabulky
FAQ
Novinky/Oznámení v Team assistant
Nastavení mobilní aplikace
Admin dokumentace
Platforma
Administrace
Crony
Autentizace a synchronizace
Nastavení mobilní aplikace pro vaše prostředí
Schéma
Dynamické tabulky
Archivace
Skripty
Servisní konzole
Naplánované úkoly
HR Agenda
Sekvence
CSP hlavičky - zásady zabezpečení obsahu
Logy
Nastavení přístupového tokenu a vypršení platnosti relace
Šablona
Role
Plánování
Uživatelé
Organizační struktura
Události
Překlady
NFC integrace
AXIOS API
Výpočty a funkce
Integrace
TAS Forms
Pokročilé funkce a tipy
Produkt
Technický changelog
Business Changelog
Průvodce upgradem z předchozích verzí
Upgrade na 5.17
Upgrade na 5.7
Lodash upgrade v4.17.x (>v5.5)
Hlavní změny a zaniklé funkce (v5.3 > v5.7)
Podbarvení proměnných ve stavu Read-only (>v5.7.58)
Použití validačních funkcí
Upgrade na 5.3
Migrace dynamických podmínek
Úprava a kontrola tisku pdf
Úprava Popis úkolu vs Instrukce k úkolu
Transpilace forEach na for loop
Vykreslení HTML na Caseoverview
Rozdíly mezi TAS4 a TAS5 - kompletní přehled
Best Practices upgrade z TAS 4 na TAS 5
Technické požadavky a architektura
Status routes
Prerekvizity serveru
Bezpečnost a ochrana dat
Security
Technologická architektura
Graceful Shutdown + Status Routes
Aktuality / Důležité informace
- Vše /
- Produkt
- Technické požadavky a architektura /
- Graceful Shutdown + Status Routes
Graceful Shutdown + Status Routes
TAS backend implementuje mechanismus pro bezpečné vypínání a poskytuje dedikované HTTP endpointy pro monitoring zdraví aplikace. Díky tomu může orchestrátor (Kubernetes, Docker Swarm) přesně řídit tok provozu — zastavit příjem requestů dříve, než začne samotné vypínání, a restartovat kontejner pouze tehdy, když aplikace skutečně přestane odpovídat.
Graceful Shutdown
Graceful shutdown se spustí při příjmu signálů SIGTERM nebo SIGINT. Cílem je dokončit všechny rozběhnuté požadavky, korektně uzavřít spojení a teprve poté ukončit proces — bez ztráty dat nebo přerušení aktivních transakcí.
Sekvence kroků — REST backend
- Nastaví se timeout dle konfigurace (
system.backendTerminationTimeout). Po jeho vypršení se proces ukončí sexit(1). applicationStatus.readiness = false+applicationStatus.isShutdown = true— HTTP server přestane být označen jako ready, nové požadavky jsou odmítány přes hookisAlive(vrací HTTP503).restServer.server.close()— uzavření Fastify HTTP serveru; čeká na dokončení in-flight requestů.container.connector.database.getConnection().close()— uzavření DB spojení.applicationStatus.liveness = false— liveness probe začne vracetUNAVAILABLE.process.exit(0)
Sekvence kroků — Cron worker
- Timeout stejný jako výše.
applicationStatus.isShutdown = true+applicationStatus.readiness = false.cronScheduler.removeAll()— zastaví plánování nových cron jobů.cronScheduler.waitForAllRunningJobs()— počká na dokončení právě běžících jobů.restServer.server.close()— uzavření status HTTP serveru cronu.container.connector.database.getConnection().close()— uzavření DB.applicationStatus.liveness = false.process.exit(0)
Konfigurace timeoutu
Maximální dobu graceful shutdownu řídí konfigurační klíč system.backendTerminationTimeout (hodnota v sekundách). Pokud shutdown trvá déle než tento limit, proces se ukončí s exit(1).
isAlive hook
Middleware isAlive (soubor src/entrypoint/hooks/isAlive.ts) chrání všechny business endpointy. Pokud je liveness = false nebo isShutdown = true, vrátí HTTP 503 Service Unavailable.
/status/liveness a /status/readiness hook isAlive nepoužívají — jsou dostupné vždy, i během shutdownu.Doporučení pro Kubernetes / Docker Swarm
Příklad konfigurace probe v Kubernetes manifestu:
livenessProbe:
httpGet:
path: /status/liveness
port: 3000
# zkontrolovat body: {"status": "OK"}
readinessProbe:
httpGet:
path: /status/readiness
port: 3000
# zkontrolovat body: {"status": "OK"}
- Liveness probe — pokud vrátí
UNAVAILABLE, orchestrátor kontejner restartuje. - Readiness probe — pokud vrátí
UNAVAILABLE, orchestrátor přestane posílat traffic (loadbalancer drain), ale kontejner nerestartuje. - Deploy / rolling update — readiness se nastaví na
trueaž po plném startu, takže na instanci, která ještě není připravena, nebude přesměrován žádný provoz. - Shutdown — readiness se nastaví na
falseokamžitě (stop traffic), liveness až po uzavření serverů.
Updated
by Frantisek Brych