Disruptor - 未调用最后一个处理程序

时间:2015-06-09 18:54:53

标签: scala disruptor-pattern

我正在使用Scala的Disruptor,并且有一个奇怪的问题:链中的最后一个处理程序(无论是哪个处理程序或链是多长时间)都不会被调用。这就是我正在做的事情:

val handlers = Seq(handler1, handler2, handler3)
val firstHandler = input.disruptor.handleEventsWith(handlers.head)
handlers.tail.foldLeft[EventHandlerGroup[IntMessage]](firstHandler) {
  (prev,handler) =>
  prev.then(handler) 
}

在调试器中,我可以看到最后一个处理程序被添加到使用者存储库中,但是从不会以某种方式调用onEvent。我正在使用CachedThreadPool执行器。

我该如何做到这一点?

1 个答案:

答案 0 :(得分:0)

我不是scala专家,但下游处理程序将无法看到该事件,直到头处理程序公开它处理事件的事实。即更新了序列号。