如何检查Node.js中特定进程或功能是否处于活动状态

时间:2019-07-18 03:54:43

标签: javascript node.js queue microservices

我正在编写一个通知服务,超过5个其他服务向该服务发送请求,为了不延迟请求,我立即将每个请求推入队列,然后按其顺序进行处理。

一切都按预期进行,但失败导致应用程序崩溃,但仍有一些请求保留在队列中,下面程序中使用的逻辑将永远不会处理队列,而是继续向队列添加请求,因为queue.length()总是大于1。

有没有一种方法可以检查addNotification函数是否正在运行以便我在需要时触发它?

const notification = JSON.stringify(req.body);

if(await queue.length() > 0) {
    await queue.push(notification);
} else {
    await queue.push(notification);

    //Initiate queue processor
    process.nextTick(addNotification);
}


// Add notification to DB
function addNotification(){
 (async()=>{
    try {
        while(await queue.length() > 0){
            await Notification.create(JSON.parse(await queue.pop()));                
        }
    } catch (err) {
        throw err;
    }
 })();
}

0 个答案:

没有答案