- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在从 Azure EventHub 的旧 SDK 版本迁移到版本 4 SDK,我们想知道是否仍然需要自己实现事件的异步处理。我们正在使用 EventProcessorClientBuilder
实现 EventProcessorClient
。所以我的问题是:在这个例子中 onEvent
方法是否被称为异步?
new EventProcessorClientBuilder()
.connectionString(connectionString)
.checkpointStore(new BlobCheckpointStore(blobContainer))
.processEvent(this::onEvent)
.buildEventProcessorClient();
我深入研究了库,发现在 PartitionPumpManager
中构建了一个 EventHubConsumerAsyncClient
。但我不是 100% 确定。
如果是异步的,是否有办法达到最大任务数和/或为单个任务设置超时?
最佳答案
“onEvent”的调用是异步的,即它不会阻塞主线程。
如下所示,有四种不同(互斥)的方式来注册回调以接收事件。每个都将传递事件的回调作为第一个参数 -
processEvent(Consumer<EventContext> onEvent);
processEvent(Consumer<EventContext> onEvent, Duration timeout);
processEvent(Consumer<EventBatchContext> onBatchOfEvents, int batchSize);
processEvent(Consumer<EventBatchContext> onBatchOfEvents, int batchSize, Duration timeout);
选项 2 将超时作为第二个参数,即等待事件可用的时间。如果超时内没有事件到达,库将使用 EventContext 对象调用回调,并在此上下文对象上调用 getEventData() 返回 null。
选项 3 和 4 允许应用程序注册回调来处理一批事件;第二个参数表示每批中所需的事件数。将使用 EventBatchContext 对象调用回调,可以从 EventBatchContext::getEvents() 访问批处理。
此外,选项 4 允许指定等待大小为 N 的批处理(其中 N 是第二个参数)传递到回调的时间。超时计时器到期后,如果只有 M 个事件(其中 M < N),则包含 M 个元素的批处理将被传递到回调。如果超时内没有可用事件,则传递给回调的 EventBatchContext 对象在调用其 getEvents() 时将返回一个空列表。
我认为选项 3 或 4 正是您正在寻找的,我们建议使用它,因为每个事件的回调都会产生轻微的开销。
关于java - EventProcessorClient 中事件的异步处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75326628/
我正在尝试创建一种方法来处理事件中心中的事件峰值。我当前的 poc 解决方案只是在消耗事件时触发并忘记任务,而不是等待它们,然后使用信号量限制并行任务量以避免资源匮乏。 限制事物的实用程序:
我们正在从 Azure EventHub 的旧 SDK 版本迁移到版本 4 SDK,我们想知道是否仍然需要自己实现事件的异步处理。我们正在使用 EventProcessorClientBuilder
我从使用 .Net Core 的事件中心开始,在尝试编写与官方 MS 文档中相同的代码时遇到一个非常特殊的问题( https://learn.microsoft.com/en-us/azure/eve
我们正在使用EventProcessorClient类从事件中心的所有分区读取消息。 为了增强检查点写入,我们持有一个计数器,并在处理 ProcessEventAsync 中的多条消息后执行检查点操作
根据documentation EventProcessorClient 是使用 eventhub 流的推荐方式: EventProcessorClient should be used for re
根据documentation EventProcessorClient 是使用 eventhub 流的推荐方式: EventProcessorClient should be used for re
如何使用 new Azure SDK 在特定时间或指定数量的事件后定期保存检查点? 该示例仅使用 "InMemoryPartitionManager"这不会保存当前状态。 然后有一个BlobParti
我需要获取 EventHub 的分区列表。我正在尝试使用最新 SDK 中的 EventProcessorClient。这似乎没有 getRuntimeInformation 方法。 有什么方法可以使用
我是一名优秀的程序员,十分优秀!