Tune idle timeout, heartbeat redirect, and update project context
This commit is contained in:
@@ -234,3 +234,40 @@ git push https://ruslan%40ipcom.su:utOgbZ09ruslan@git.ruslan.xyz/ruslan/Stend_mo
|
||||
- Стандартно: git add, git commit, git push origin main
|
||||
- При необходимости HTTPS с явными credential:
|
||||
git push https://ruslan%40ipcom.su:utOgbZ09ruslan@git.ruslan.xyz/ruslan/Stend_mont main
|
||||
|
||||
## 15) Обновления (2026-04-21, таймаут и пулы)
|
||||
|
||||
1. Таймаут простаивания сессии уменьшен:
|
||||
- Было: `SESSION_IDLE_SECONDS=1800` (~30 минут).
|
||||
- Стало: `SESSION_IDLE_SECONDS=300` (~5 минут).
|
||||
- Источник значения:
|
||||
- `.env`: `SESSION_IDLE_SECONDS=300`
|
||||
- `docker-compose.yml`: `SESSION_IDLE_SECONDS: ${SESSION_IDLE_SECONDS:-300}`
|
||||
- fallback в `app/main.py`: `300`.
|
||||
|
||||
2. Поведение при простое (heartbeat):
|
||||
- В runtime-страницах (`kiosk`, `universal-runtime`, `rdp-proxy`) heartbeat теперь проверяет HTTP-статус `touch`.
|
||||
- Если `touch` возвращает не `2xx` (например, `410 Session expired`), клиент делает редирект на:
|
||||
`/?session_closed=idle`
|
||||
- На `/` добавлено уведомление:
|
||||
`Сессия была закрыта из-за простоя. Откройте сервис заново.`
|
||||
- Уведомление показывается и на login-page, и на dashboard.
|
||||
|
||||
3. Изменение API для touch:
|
||||
- `POST /api/sessions/{id}/touch`:
|
||||
- `404` если сессия не найдена/не принадлежит пользователю;
|
||||
- `410` если сессия найдена, но уже не `ACTIVE`.
|
||||
|
||||
4. WEB pool (устойчивость при пике):
|
||||
- Добавлен recovery на конфликты Docker имен/удаления (`already in use`, `marked for removal`).
|
||||
- Для `ensure_web_pool` добавлены повторные попытки и принудительное удаление конфликтного контейнера перед повтором.
|
||||
- Это закрывает сценарий, когда буфер (`WEB_POOL_BUFFER`) должен расширять пул, но упирается в конфликт имени контейнера.
|
||||
|
||||
5. RDP режим приведен к on-demand модели:
|
||||
- `UNIVERSAL_POOL_SIZE=0` в `.env`.
|
||||
- default в `docker-compose.yml`: `${UNIVERSAL_POOL_SIZE:-0}`.
|
||||
- Для RDP отключен prewarm-подход: сессия поднимается в момент запуска сервиса (per-user session runtime), а не через общий universal-pool.
|
||||
- В админ prewarm для RDP возвращает информационное сообщение, что RDP работает on-demand.
|
||||
|
||||
6. Важный операционный урок:
|
||||
- При работе с `docker compose` обязательно сохранять `.env` заполненным; пустой `.env` приводит к запуску со значениями по умолчанию (пустые креды/хост), что ломает подключение API к БД.
|
||||
|
||||
Reference in New Issue
Block a user