Элемент оформления
CФото пользователя
Иконка
Crysalis
(325)
325

А ты уверен, что тебе надо хелсчек делать?
у тебя коннект с приложения должен быть, а хелсчеки сервиса уже псы должны сделать. Грузия

MФото пользователя
Иконка
Mr. Anderson
(533)
533
Добавлено в сентябре 2022 года
Добавлено в сентябре 2022 года

А что за псы?

Я его просто делаю, так как база данных может быть опущенна на тот момент когда поднимаешь приложение (она у меня в докере и может не успеть развернуться, знаю что базу в докере держать плохо), что бы подождало а не ошибку сразу давало

MФото пользователя
Иконка
Mr. Anderson
(533)
533
Добавлено в сентябре 2022 года
Добавлено в сентябре 2022 года

На ноде вот такой код есть

export class HealthChecker {
failed: number = 0;
logger: Logger;

async testPg(): Promise {
if ( this.failed >= 10 ) {
this.logger.err("Failed connect to PostgreSQL")
throw "Failed connect to PostgreSQL"
}
this.logger.inf("Trying connect to db...")

const pool = new pgDriver.Pool({
host: process.env.POSTGRES_HOST || "127.0.0.1",
port: parseInt(process.env.POSTGRES_PORT || ""),
user: process.env.POSTGRES_USER || "",
password: process.env.POSTGRES_PASSWORD || "",
database: process.env.POSTGRES_DB || "",
})
try { await pool.connect() } catch(err) {
this.failed++
this.logger.wrn("Cannot connect to db. Wait...")
await new Promise(resolve => setTimeout(resolve, 10000))
await this.testPg()
return
}
this.logger.good("Success connection to PostgreSQL! It's up")
pool.end()
}

constructor() {
this.logger = new Logger("Health Check")
}
}

Можно тупо переписать, но мб у кого то есть решения лучше

Перед стартом приложения в ноде просто делаю
await (new HealthChecker()).testPg() // Check if postgres up
// If it's down -- do not start server

CФото пользователя
Иконка
Crysalis
(325)
325
Добавлено в сентябре 2022 года
Добавлено в сентябре 2022 года
Автор вопроса

Девопсы
ты должен сделать ретраи для коннекта (я бы количество попыток обернул в енвы и сделал дефолтное значение), после чего выдавать ошибку коннекта к базе. Всё. Остальное не твои заботы

MФото пользователя
Иконка
Mr. Anderson
(533)
533
Добавлено в сентябре 2022 года
Добавлено в сентябре 2022 года

Понял, ок

MФото пользователя
Иконка
Mr. Anderson
(533)
533
Добавлено в сентябре 2022 года
Добавлено в сентябре 2022 года

Вот тут как раз ретраи как я понимаю

MФото пользователя
Иконка
Mr. Anderson
(533)
533
Добавлено в сентябре 2022 года
Добавлено в сентябре 2022 года

Я вообще один, пет проект)

И девопс и фронт и бэк и тимлид и главный админ локалхоста)

IФото пользователя
Иконка
Igor Sapego
(26)
26
Добавлено в сентябре 2022 года
Добавлено в сентябре 2022 года

Дык может он и есть девопс, откуда тебе знать

Статус добавления ответа