繁体   English   中英

带有 nodejs 的 Azure 服务总线:从队列中获取消息非常慢

[英]Azure Service Bus with nodejs: get messages from queue extremely slow

这是用于处理来自队列的传入消息的回调:

function startListen(){
    serviceBusService.receiveQueueMessage(queueForRequest, {isPeekLock:true},
    function(error, lockedMessage) { handleMessage(error, lockedMessage)} );
}

function handleMessage(err, msg){
    if(typeof msg !== "undefined"){ //if msg has been received, delete it
    serviceBusService.deleteMessage(msg, function(deleteError){
        if(deleteError) console.log('Can not delete message');
    });  
  } 

    if (!err){
    var result = ProcessMessage(msg);
    sendResponse(result);
    }
    else{console.log(err);}

    startListen(); //try get message again
}

这样的代码效果不好。 有时服务器可以从队列中获取消息,但通常HandleMessage()将 err 作为参数:

没有要接收的消息

最后,一些消息保持未处理状态。 它在聆听开始时效果很好,因此我认为问题隐藏在我的代码中。 怎么了?

我不确定这里的问题和您正在使用的库。 但是,我建议使用基于 AMQP 的最新库,这些库更可靠,您不会看到这样的问题。

我知道这是一个迟到的回复,但以防万一有人遇到问题并登陆这里,请参阅下面的链接。

@azure/service-bus (基于AMQP)最新版本7.0.0已经发布。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM