0

有一个控制器:

@Controller
@CircuitBreaker
public class ExampleController {

    @Get("/")
    public Single<String> endpoint() {
        return Single.fromSupplier(this::serviceCall);
    }

    private String serviceCall() {
        throw new RuntimeException();
    }
}

拳头通话绝对没问题。但是,如果在 CircuitBreaker 打开时发生第二次调用,则不会因相同的异常而失败。相反,它会在 micronaut 基础设施中出现 CircuitOpenException,从而导致请求中断。

有解决该问题的方法吗?

完整示例:https ://github.com/artfable/micronaut-test

更新:

创建了一个问题:https ://github.com/micronaut-projects/micronaut-rxjava3/issues/87

注释适用于来自 rxjava2 的 Single。因此,作为一种解决方法,使用将具有注释并返回 rxjava2 Single 的服务,在控制器中转换为 rxjava3 Single。

4

0 回答 0