我最近一直在学习LMAX Disruptor,我想直接获取一批消息,而不是获取一条消息并将其存储在列表中。
我试图通过EventHandler实现我的目标,但是通过这种方式,我需要创建一个新的List并等待其大小达到我的目的批次大小。
class MessageEventHandler extends EventHandler[CaseObject]{
override def onEvent(event: CaseObject, sequence: Long, endOfBatch: Boolean): Unit = {
// store the msg
waitingForBatchSize(event)
}
def waitingForBatchSize(event: CaseObject): Unit = {
if (MessageEventHandler.list.size() < 5) {
MessageEventHandler.list.add(event)
} else {
// do somthing
MessageEventHandler.list.clear()
}
}
}
object MessageEventHandler {
val list: util.List[CaseObject] = new util.ArrayList[CaseObject]
}
是否可以通过Disruptor直接获取一批消息