P1-9: readiness-проба /ready отражает состояние bridge/consumer
/health остаётся liveness (процесс жив); /ready возвращает 503, если bridge или consumer не в строю (горутина упала/не поднялась). Добавлен api.Readiness с atomic-флагами, NewRouter принимает *Readiness, main поднимает/опускает флаги вокруг фоновых горутин.
This commit is contained in:
@@ -42,10 +42,17 @@
|
||||
`store.Flush(ctx)`, и только при успехе — `DeleteMessage`. При ошибке flush
|
||||
сообщения НЕ удаляются (вернутся после visibility timeout).
|
||||
|
||||
### P1-9 — `/ready` отражает состояние подсистем
|
||||
- `internal/service/api/readiness.go` — тип `Readiness` (atomic-флаги bridge/consumer).
|
||||
- `internal/service/api/router.go` — `NewRouter` принимает `*Readiness`; добавлен
|
||||
`/ready` (200 если обе подсистемы в строю, иначе 503). `/health` остался
|
||||
liveness-пробой.
|
||||
- `cmd/iot-service/main.go` — bridge/consumer поднимают/опускают свои флаги;
|
||||
если горутина завершилась (ошибка/падение), `/ready` вернёт 503.
|
||||
|
||||
## Осталось (не сделано)
|
||||
- P0-3 часть 1 (хэш паролей + EMQX), P0-8 (идемпотентность), P1-9 (`/health`
|
||||
отражает состояние подсистем), P1-11/P1-12 (тесты/CI), P2-14 (вычистить
|
||||
легаси `internal/api/`).
|
||||
- P0-3 часть 1 (хэш паролей + EMQX), P0-8 (идемпотентность), P1-11/P1-12
|
||||
(тесты/CI), P2-14 (вычистить легаси `internal/api/`).
|
||||
- Платформенные проблемы (wss ~150с, MSS/MTU) — вне кода.
|
||||
|
||||
## Проверки
|
||||
|
||||
Reference in New Issue
Block a user