Недавно я узнал о LMAX Disruptor, и я хочу получить пакет сообщений напрямую, а не получить одно сообщение и сохранить его в списке.
Я пытался достичь своей цели с помощью EventHandler, но таким образом мне нужно создать новый список и подождать, пока размер достигнет моего целевого размера пакета.
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 напрямую