node.js - Azure Nodejs SDK : long polling for queue message listener

标签 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);

谢谢

最佳答案

某种程度上,您使用长轮询来检查消息并等待很长时间以获得响应。这样做的好处是您只需为单个请求付费。将秒数替换为您要等待响应的时间。最长为 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/

相关文章:

authentication - Azure 存储服务的共享 key Lite 身份验证方案有效性

java - 具有等待/通知的生产者消费者代码不适用于第二个产品

c - 合并链表两个节点中的值

ios - TableViewCells 数组在更新 TableView 后重新排序

Node.js 谷歌地图缓存

node.js - 让node.js程序阻止系统进入休眠模式

javascript - NodeJS : how to use arguments like req, res,函数结果?

mysql - Grunt 部署/bin/sh : mysql: command not found

azure - 使用托管标识和基于 token 的登录从 Azure Function 访问 Azure Analysis Services

node.js - 使用 axios、Node.js 连接到 Azure Blob 存储 REST API