是否可以创建一个消息监听器,仅当消息可用时才从服务总线队列(而不是存储队列)接收消息?
实际上我的实现包含调用接收操作的 setInterval 函数:
var service = azure.createServiceBusService( azureEnpoint );
var repeat = function() {
service.receiveQueueMessage(me.name, function (error, receivedMessage) {
if (!error) {
logger.debug(receivedMessage, "Received message from queue "+ me.name);
callback(error, receivedMessage);
}
});
}
setInterval(repeat, me.pollingInterval);
谢谢
最佳答案
某种程度上,您使用长轮询来检查消息并等待很长时间以获得响应。这样做的好处是您只需为单个请求付费。将秒数替换为您要等待响应的时间。最长为 24 天。
service.receiveQueueMessage(me.name, { timeoutIntervalInS: seconds },
function (error, receivedMessage)
这里有一个完整的示例:https://msdn.microsoft.com/en-us/magazine/dn802604.aspx
关于node.js - Azure Nodejs SDK : long polling for queue message listener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27397613/