0

私は 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 エグゼキュータを使用しています。

どうすればこれを機能させることができますか?

4

1 に答える 1

0

私はスカラの専門家ではありませんが、ヘッド ハンドラーがイベントを処理したという事実を公開するまで、イベントはダウンストリーム ハンドラーには表示されません。つまり、シーケンス番号を更新しました。

于 2015-06-22T13:28:07.737 に答える