Я кодирую промежуточное ПО, которое подключается к разным сервисам, я использую rabbitmq для постановки в очередь сообщений, которые должны быть отправлены этим сервисам.Если служба недоступна, сообщение ставится в очередь.Это работает, как и ожидалось, но здесь возникает проблема, мне нужно сохранить в базе данных все сообщения, которые были поставлены в очередь, когда служба была недоступна в течение 24 часов.Каков наилучший подход?
Это то, что я имею до сих пор:
//check if service is available
if (await isReachable(url)) {
//customer executes process
try {
logger.inf.info(`${url} is available, consuming end-point`);
consumer.consume(queue, conn);
} catch (err) {
logger.err.error(err);
throw new Error(err);
}
} else {
//service has not been available for 24 hours
if (difTime >= oneDay) {
try {
logger.inf.info(`Save requests to db`);
//reset time
difTime = 0;
consumer.saveToDB(queue, conn);
} catch (err) {
logger.err.error(err);
throw new Error(err);
}
}
logger.err.error(`${url} is not available, queueing request`);
}
Я использую узел 10, экспресс 4 и amqplib.