我需要从mongodb存储和获取一个巨大的数据,所以我被要求使用lmax中断器来接收和存储数据--我已经花了几天时间寻找关于lmax github帐户的简单教程,但是我不太明白如何将我的特殊数据放入lmax破坏机制轮盘中。
发布于 2018-06-19 20:41:00
有一个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();
}
}https://stackoverflow.com/questions/49544441
复制相似问题