关于disruptor的事件发布的返回结果

诸位大虾:

当前在做Disruptor(ringBuffer)的学习,对RingBuffer发布事件(EventTranslator)后如何获得经过事件处理器(EventProcessor)的返回结果,存在一些问题,特向诸位请教一下。

比如我当下的事件类似TestEvent, 我设定的处理器为PhaseOneEventHandle、PhaseTwoEventHandler、PhaseThreeEventHandler(如下)整合成一个职责链的处理方式

public static class PhaseOneEventHandler implements EventHandler<TestEvent> {
@Override
public void onEvent(TestEvent event, long sequence, boolean endOfBatch) throws Exception {
logger.info("====result1====" + event.getParam() + "," + sequence);

event.setResult1("phaseone===" + System.currentTimeMillis() + ",init===" + event.getParam());
}
}

测试代码为

public void testPublish() {
int n = 10;
for(int i = 0 ; i <n ; i ++) {
this.eventPublisher.publish(new EventTranslator<TestEvent>() {
@Override
public TestEvent translateTo(TestEvent event, long sequence) {
event.setParam(String.valueOf(System.nanoTime()));

return event;
}

})
}
}

现在通过publish没有通过ringBuffer提取返回结果的时候 都是正常和正确的

但如何提取每次publish的返回结果呢(我发现不能直接使用 ringBuffer.get(sequence)的方式)

请诸位大侠有过类似调试经验的请不吝赐教

jerryscott2012