gpt4 book ai didi

.net - 有什么方法可以在 azure 事件中心中使用 EventProcessorHost 检索跳过的事件吗?

转载 作者:行者123 更新时间:2023-12-03 00:32:17 25 4
gpt4 key购买 nike

我正在使用 azure 事件中心的 EventProcessorHost 来处理批量事件。由于某种原因,当线程计数达到最大值时,我必须通过不写入检查点来跳过事件,但我必须在线程计数下降后检索这些跳过的事件。请参阅下面的实现:

async Task IEventProcessor.ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> messages)
{
//Process Events
foreach (var eventData in messages)
{
if (Process.GetCurrentProcess().Threads.Count <= 50)
{
//do work
await context.CheckpointAsync(eventData);
}
else
{
//do not write Checkpoint
break;
}
}
}

这是一个简单明了的逻辑,但它并没有按照我的预期工作。一旦“break”行遇到“foreach”中断,我希望这些跳过的事件将显示在下一个“ProcessEventsAsync”中,但它们永远不会再次出现,直到辅助角色回收并重新注册“EventProcessorHost”。

我已经被这个问题困扰了几天,请有人弄清楚我错过了什么。

非常感谢!

最佳答案

不,无论您选择如何处理事件,都会按顺序接收事件。因此,即使 foreach 循环一旦退出就永远不会执行,只要您有事件的租约和要接收的事件,ProcessEventsAsync 就会被调用。

关于.net - 有什么方法可以在 azure 事件中心中使用 EventProcessorHost 检索跳过的事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35100045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com