簡體   English   中英

Azure SDK導致Node.js服務總線調用運行緩慢

[英]Azure SDK causes Node.js service bus call to run slow

我正在使用這段代碼從使用網絡矩陣在本地運行的node.js服務器中調用服務總線隊列,我還已經將Azure天藍色的“網站”上傳到Windows,但它仍然運行緩慢。

var sb1 = azure.createServiceBusService(config.serviceBusNamespace, config.serviceBusAccessKey);
sbMessage = {
    "Entity": {
        "SerialNumbersToCreate": '0',
        "SerialNumberSize": config.usageRates[3],
        "BlobName": 'snvideos' + channel.ChannelTableName,
        "TableName": 'snvideos' + channel.ChannelTableName
    }
};

sb1.getQueue('serialnumbers', function(error, queue){
    if (error === null){
        sb1.sendQueueMessage('serialnumbers', JSON.stringify(sbMessage), function(error) {
            if (!error)
                res.send(req.query.callback + '({data: ' + JSON.stringify({ success: true, video: newVideo }) + '});');
            else 
                res.send(req.query.callback + '({data: ' + JSON.stringify({ success: false }) + '});');
        });
    }
    else res.send(req.query.callback + '({data: ' + JSON.stringify({ success: false }) + '});');
});

服務器最多可能需要5秒鍾才能將響應返回給客戶端。 當我注釋掉sb1.getQueue('serialnumbers',function(error,queue){)並返回它而不發送隊列消息時,它在不到1秒的時間內執行。為什么呢?我使用azure sdk的方法是服務巴士正確嗎?

任何幫助,將不勝感激。

感謝馬克的答復。 我遇到的問題與IISNode有關,顯然如果有人在其程序中使用console.log,則IISNode最終將在某個階段崩潰。 在web.config中,如果不時調整此設置:

loggingEnabled="true"

判斷沒有更多的崩潰,並且隊列調用起作用。 我應該指出我所有的隊列調用都在同一個線程中完成,我有一個cron作業要檢查隊列中的消息,因此為什么當IISNode崩潰並再次重新啟動時,它似乎就像隊列由於某種原因被延遲了。

干杯

在這種情況下,您的getQueue調用確實不是很正常,因為您沒有使用輸出,因此您可以嘗試CreateQueueIfNotExists,以查看是否存在性能差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM