每次在我的网络应用上添加新文章时,我都会有一段代码将消息推送到服务总线队列。然后,我的功能应用程序中的ServiceBusTrigger
带有SendGrid输出,然后向我发送一封电子邮件,说明有人添加了新文章。
这根本不会经常发生,我决定让它以这种方式运行的唯一原因就是让我的脚部受到一些非常棒的Azure服务的影响。
我的问题是 - 因为我并不真正关心实时重新发送这些通知电子邮件...如何降低触发器检查队列的频率?
在我的函数app的host.json中,我已经将maxConcurrentCalls最小化为1(默认值为16)。
"serviceBus": {
"maxConcurrentCalls": 1,
"prefetchCount": 100,
"autoRenewTimeout": "00:05:00"
}
有没有办法设置它,以便我的触发器每30分钟只检查一次队列或类似的东西?
答案 0 :(得分:2)
没有。消息检索由缩放控制器管理,除了您已经看到的host.json
参数之外,它不会对您产生太大影响。
要实现您的方案,您需要切换到每30分钟运行一次的Timer触发器,并从Service Bus手动检索消息,可能会失去Azure Functions的许多好处。
更新:您现在可以integrate your Service Bus to Azure Event Grid然后使用事件网格触发功能。不幸的是,截至今天它只适用于Premium Service Bus命名空间,所以你很可能不得不等到他们将功能扩展到更低层。