我只是想弄清楚如何最好地从Azure Service Bus Queue中尽快检索邮件。
我很震惊,没有办法正确订阅通知队列,我将不得不进行民意调查。 (除非我错了,在哪种情况下文档很糟糕)。
我得到了长时间的民意调查工作,但是每60秒检查一条消息看起来每月花费大约900英镑(再次,除非我误解了这一点)。如果我添加一个冗余/第二个服务来轮询它将加倍。
所以我想知道最好/最具成本效益的方法是什么。
基本上我只是想从队列中获取一条消息,对一些内部保存的数据执行API查找(可能使用混合服务?),然后可能会将消息发回一个带有一些附加信息的不同队列。
我看了一下工人角色(?) - 这是可以做到的吗?
我应该提一下,我一直在用node.js来做这件事。
答案 0 :(得分:2)
在Azure Queues上查看来自Scott Hanselman和Mark Simms的这些视频。 这是C#,但你明白了。
https://channel9.msdn.com/Search?term=azure%20queues%20simms#ch9Search
触及:
对于您的计算,您可以执行VM,工作者角色(云服务),App Service Webjobs或Azure功能。
Webjobs SDK和Azure Functions bot可以订阅队列事件(通知消息)。
(从IaaS列表到PaaS到FaaS - Azure功能 - 如果存在这样的事情)。
Azure Functions已经提供了作为模板提供的示例代码,以便使用Node完成所有这些操作。只需创建一个新函数并按照向导进行操作。
如果您需要在本地接触数据,您需要查看与具有站点到站点连接的VNET集成到您的前提或混合连接(仅限App Service!)。 Azure Functions还不能做到这一点,但是其他所有计算都是go。
https://azure.microsoft.com/en-us/documentation/articles/web-sites-hybrid-connection-get-started/ (该教程仅适用于Windows,但您可以从任何操作系统中提取数据。混合连接管理器必须位于Windows机器上,但它可以充当网络上任何主机的反向代理。)
答案 1 :(得分:2)
要轻松处理Azure ServiceBus队列,最佳选择似乎是Azure Webjob。
有ServiceBusTrigger允许您从Azure ServiceBus队列中获取邮件。
对于node.js集成,您应该查看Azure Function。它构建于webjob SDK之上,并具有node.js集成:
在第二篇文章中,有一个关于如何使用Azure Function和nodejs从队列中获取消息的示例:
module.exports = function(context, myQueueItem) {
context.log('Node.js ServiceBus queue trigger function processed message', myQueueItem);
context.done();
};