gpt4 book ai didi

Java Disruptor 处理异常

转载 作者:行者123 更新时间:2023-12-01 10:59:34 24 4
gpt4 key购买 nike

在disruptor(版本3.3.2)中,每个事件都是一个Runnable(因为EventProcessor扩展了runnable)。

我正在编写一个应用程序,每当EventHandler抛出异常时,调用disruptor.start()的类需要捕获异常然后使用react。

现在,如果 EventProcessor 是 Callable,那就很容易了。

Disruptor 中是否有其他方法来传播异常?

最佳答案

我通过将实现接口(interface)传递给EventHandler解决了这个问题,正如道格·李 (Doug Lea) 书中所建议的那样。异常是在 LinkedList 中设置的,并且在方法调用结束时我检索列表中的最后一个元素。示例代码:

    final LinkedList<Throwable> listExceptions = new LinkedList<Throwable>();

MyClassWithDisruptor at = MyClassWithDisruptor.getInstance();
at.send(message, transport, conf, new AuditExceptionHandler() {

@Override
public void handleException(final Throwable e) {
e.printStackTrace();

}

@Override
public void setException(final Exception e) throws AuditTrailException {
listExceptions.add(e);

}
});

关于Java Disruptor 处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33440251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com