我有以下模式,
Http触发函数App -〉Event Hub -〉Event Hub监听函数App
不幸的是,HTTP Trigger应用程序的发送方发送了许多单独的请求,这意味着发送到事件中心的执行也是每个消息的少量数据。
这导致侦听器在每个小消息上触发,在数据加载结束时创建许多许多文件。
我的侦听器已经配置为接收批处理事件,我在过去看到,当侦听器功能被禁用一段时间,然后重新启用时,数据将以大批量接收。
如何确保多个事件在到达侦听器后被批量处理,即使它们作为单独的请求/消息发送到事件中心?
有没有一些延迟设置为听众,也许?
2条答案
按热度按时间r1zhe5dt1#
没有足够的上下文来理解
maxEventBatchSize
是如何在host.json
中配置的,但我假设它被设置为大于1的值。在这种情况下,听起来像是分区没有积压的事件,并且在它们到达时正在读取。由于没有足够的事件来保持预取队列为满,因此事件在流入时被分派。我建议利用事件中心触发器的v5.3.0中添加的
minEventBatchSize
。这与maxWaitTime
一起工作,要求触发器等待一段时间并构建一个批处理,而不是其首选最大化吞吐量的默认行为。一个最小的例子看起来像这样:
主机中提供了更多详细信息。文档的json设置部分。
yhxst69z2#
EventProcessorOptions
对象的MaxBatchSize
参数可用于批量接收事件。要批量接收事件,可以使用
EventProcessorOptions
对象的MaxBatchSize
属性。参考文献:
感谢@ciaranodonnell
发送消息:
接收消息:
输出:
参考文献: