我正在编码连接到不同服务的中间件,我使用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。