如何直接通过Disruptor获取一批消息?

时间:2019-04-22 15:29:59

标签: scala disruptor-pattern

我最近一直在学习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直接获取一批消息

0 个答案:

没有答案