Azure nodejs sdk:队列消息侦听器的长轮询

时间:2014-12-10 09:39:03

标签: node.js azure queue

是否可以创建一个消息监听器,仅在消息可用时才从服务总线队列(而不是存储队列)接收消息?

实际上我的实现包含一个调用接收操作的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);

由于

1 个答案:

答案 0 :(得分:2)

排序,您使用长轮询来检查消息并等待很长时间才能得到响应。好的一面是你只收取一个请求的费用。将秒数替换为您希望等待响应的时间。最长为24天。

service.receiveQueueMessage(me.name, { timeoutIntervalInS: seconds },  
                                    function (error, receivedMessage)

这里有一个完整的例子:https://msdn.microsoft.com/en-us/magazine/dn802604.aspx

相关问题