gpt4 book ai didi

java - 如何将列表推送到事件类中的 lmax Disruptor

转载 作者:行者123 更新时间:2023-11-30 06:14:24 24 4
gpt4 key购买 nike

我需要从 mongodb 存储和获取大量数据,所以我被要求使用 lmax Disruptor 接收和存储数据,我已经花了几天时间在 lmax github 帐户上寻找一个简单的教程,但我不太明白如何将我的特殊数据放入lmax干扰器机制轮中

最佳答案

有一个ringBuffer.publishEvents(..)方法接受对象集合。如果您想将整个批处理发布到环形缓冲区,可以使用此方法。

如果您想从环形缓冲区(在处理程序中)消耗一批数据,并向前处理一批数据,您可以将 EventHandler 与 onEvent() 方法的参数“endOfBatch”一起使用。该参数是一个标志,它向您显示何时是刷新缓冲区的好时机。我在我的项目中使用这种机制来创建批处理。请看下面的示例:

@Component
public class MyHandler implements EventHandler<Event> {
private List<Event> batchOfEvents = new LinkedList<>();

@Override
public void onEvent(Event Event, long sequence, boolean endOfBatch) throws Exception {
// Add message to batch
batchOfEvents.add(event);

if (endOfBatch && !batchOfEvents.isEmpty()) {
// Feed your batch to some Mongo DB dao or any other service
someService.process(batchOfEvents);
batchOfEvents.clear();
}
}

关于java - 如何将列表推送到事件类中的 lmax Disruptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49544441/

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