Код Middle Деплой и эксплуатация обновлено

Liveness и readiness по состоянию зависимостей

Условие

Напишите health(state): state содержит started (приложение инициализировано), shutting_down (получен SIGTERM), db и redis ("ok" или "down"), redis_required (нужен ли Redis для обслуживания). Верните {"live": код, "ready": код} с HTTP-кодами 200 или 503. Liveness: 200, если приложение запущено (от зависимостей не зависит). Readiness: 200, только если приложение запущено, не завершается, база доступна и, если Redis обязателен, Redis доступен.

Примеры

health({"started":true,"shutting_down":false,"db":"ok","redis":"ok","redis_required":true}) // {"live":200,"ready":200}
health({"started":true,"shutting_down":false,"db":"down","redis":"ok","redis_required":true}) // {"live":200,"ready":503}
health({"started":false,"shutting_down":false,"db":"ok","redis":"ok","redis_required":false}) // {"live":503,"ready":503}

Как подойти

Подсказки: 2
  1. Liveness только от started.
  2. Во время завершения readiness отвечает 503.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.