问题描述
有一个控制器:
@Controller
@CircuitBreaker
public class ExampleController {
@Get("/")
public Single<String> endpoint() {
return Single.fromsupplier(this::serviceCall);
}
private String serviceCall() {
throw new RuntimeException();
}
}
Fist call 效果很好。但是,如果在 CircuitBreaker 打开时发生,第二次调用不会因相同的异常而失败。相反,它会在 micronaut 基础设施中引发 CircuitOpenException,这将导致请求中断。
完整示例:https://github.com/artfable/micronaut-test
更新:
创建了一个问题:https://github.com/micronaut-projects/micronaut-rxjava3/issues/87
注释与 rxjava2 中的 Single 一起工作正常。因此,作为一种解决方法,使用具有注释的服务并返回 rxjava2 Single,在控制器中转换为 rxjava3 Single。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)