我需要从 mongodb 存储和获取大量数据,所以我要求使用 lmax 中断器接收和存储数据我已经花了几天时间寻找关于 lmax github 帐户的简单教程,但我不太了解如何将我的特殊lmax 干扰器机制轮内的数据
问问题
208 次
1 回答
1
有一个接受对象集合的 ringBuffer.publishEvents(..) 方法。如果要将整个批次发布到环形缓冲区,可以使用此方法。
如果您想从环形缓冲区(在处理程序中)消费一批数据,并用一批向前处理,您可以使用带有 onEvent() 方法的参数“endOfBatch”的 EventHandler。此参数是一个标志,它向您显示刷新缓冲区的好时机。我在我的项目中使用这种机制来创建批处理。请看下面的例子:
@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();
}
}
于 2018-06-19T20:41:00.703 回答