Azure事件中心,仅在处理上一个事件后才接收事件?

问题描述 投票:0回答:1

我通过这个npm包@azure/events-hub使用azure事件中心进行项目

我想知道是否有一种方法使事件接收器只在完成处理先前接收的事件时才接收新事件。关键是我想一次处理一个事件。我目前的观察是它在可用时将事件发送给处理程序。

api即使用的是来自文档的client.receive(partitionId, onMessage, onError)。想知道是否有办法实现上述行为,使用此api。

javascript node.js azure-eventhub
1个回答
1
投票

client.receive()方法返回一个RecieverHandler对象,您可以使用它来使用stop()方法停止流。然后你会用新鲜的client.receive()再次启动它。

另一种选择是使用client.recieveBatch(),其中最大批量大小设置为1。

这两种选择都不理想 - 正如Peter Bons所提到的,事件中心不是为缓慢的数据流而设计的。该服务假定您能够以与它们相同的速率接受消息,并且每个接收器只有1个接收器划分。服务总线确实是一个很好的选择。您可以选择一次接收的消息数量并连接多个接收器,每个接收器一次处理一条消息,以扩展您的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.