/
githubmirror
/
nest
Обзор
Документация
Войти
/
githubmirror
/
nest
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
scripts/wait-for-rabbitmq.js
48 строк
1 KB
Mysh3ll
test(integration): wait for rabbitmq before tests
26 апр 2026, 19:46
26 апр 2026, 19:46
d3f55e9
Код
Авторство
О чём код?
'use strict'; const amqp = require('amqplib'); const url = process.env.RABBITMQ_URL || 'amqp://localhost:5672'; const readPositiveInteger = (value, fallback) => { const parsed = Number.parseInt(value, 10); return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback; }; const timeoutMs = readPositiveInteger( process.env.RABBITMQ_WAIT_TIMEOUT_MS, 60000, ); const intervalMs = readPositiveInteger( process.env.RABBITMQ_WAIT_INTERVAL_MS, 1000, ); const startedAt = Date.now(); const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); async function waitForRabbitMQ() { let lastError; while (Date.now() - startedAt < timeoutMs) { try { const connection = await amqp.connect(url); await connection.close(); console.log(`[rabbitmq] Ready at ${url}`); return; } catch (err) { lastError = err; console.log(`[rabbitmq] Waiting for ${url}...`); await sleep(intervalMs); } } console.error( `[rabbitmq] Timed out waiting for ${url} after ${timeoutMs}ms.`, ); if (lastError) { console.error(lastError); } process.exit(1); } void waitForRabbitMQ();