在EventHub触发的Azure函数上设置轮询间隔

问题描述

使用Storage Queue触发函数时,我们可以像在host.json [1]中那样,使用maxPollingInterval设置轮询间隔。但是,当使用EventHub触发的函数时,我看不到任何在hosts.json [2]中设置轮询间隔的选项。问题:是否可以为EventHub触发函数设置轮询间隔?

参考文献:根据Azure-Functions Github重新发布中的此评论[3],缩放控制器每隔10秒轮询一次。按照此链接[4],逻辑应用似乎具有从EventHub进行轮询的轮询间隔。

解决方法

当前,无法为Eventhub触发的天蓝色函数设置maxPollingInterval

queue trigger的源代码中,您可以看到它定义了maxPollingInterval there,如下所示:

public TimeSpan MaxPollingInterval{xxx}

但是对于eventhub trigger,没有这样的定义。您可以在此处提交请求,并要求他们添加此功能。

顺便说一下,here列出了eventhub触发功能的所有可用设置。

,

了解到EventHubs是基于推式的,因此我在错误印象下提出了此查询,即maxPollingInterval之类的设置少于10秒时,将导致死机消费计划功能,以该频率检查EventHub中的新消息。如果有人以同样错误的方式思考,请留在这里:)

即使对于存储队列触发器,maxPollingInterval也仅在该函数处于活动状态时才起作用。一旦函数停​​止运行(从内存中卸载),即使我们将maxPollingInterval设置为1秒,该函数也只有在比例控制器检查存储队列时才会触发,该队列以自己的速度发生,出现当前为10秒。以上仅适用于消费计划。在应用服务/高级套餐上时,该功能始终处于活动状态,并且按照maxPollingInterval进行轮询。

一个活动的Eventhub触发功能正在等待基于推送的消息,因此不必轮询。因此,maxPollingInterval之类的设置对于事件中心触发器没有意义。