簡體   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