我测试了下,但是还是最先返回的那个Consumer的结果。在DisruptorFactoryTest
public void testGetDisruptor() {
TreeSet<DomainEventHandler> handlers = disruptorFactory.getTreeSet();
final DomainEventHandler<EventDisruptor> handler = new DomainEventHandler<EventDisruptor>() {
public void onEvent(EventDisruptor event, final boolean endOfBatch) throws Exception {
System.out.println("MyEventA=" + event.getDomainMessage().getEventSource());
event.getDomainMessage().setEventResult(11111 + (Long) event.getDomainMessage().getEventSource());
}
};
final DomainEventHandler<EventDisruptor> handler2 = new DomainEventHandler<EventDisruptor>() {
public void onEvent(EventDisruptor event, final boolean endOfBatch) throws Exception {
System.out.println("MyEventA=" + event.getDomainMessage().getEventSource());
event.getDomainMessage().setEventResult(22222 + (Long) event.getDomainMessage().getEventSource());
}
};
handlers.add(handler2);
handlers.add(handler);
因为按照类名排序的,handler总是排在前面,类名com.jdon.async.disruptor.DisruptorFactoryTest$1,
handler2总是排在后面类名是com.jdon.async.disruptor.DisruptorFactoryTest$2
返回的总是hander的结果