某些类型的异常的resilience4j隔板跳过后备方法

问题描述

我使用reslience4j隔板将活动线程数限制为我的一种服务方法。当线程限制超出配置时,应转到一种预料不到的后备方法。

但是,当验证失败时,作为方法中业务逻辑的一部分,我向用户发出了带有自定义消息的BadRequestException。当checkedException发生得太多时,这里的控件将转为一个后备方法。理想情况下,情况并非如此。

那么,我们是否有任何配置可以跳过对某些类型的Exception的回退方法的控制,类似于我们在Hystrix中的处理方式?

@Bulkhead(name="bhName" fallbackMethod="fallbackMethod")
public void doSomething(){

    //validatiion
    // if validation succeeds
         //do some business logic
    // else if validation fails
        throw BadRequestException("Error Message")
}

public void fallbackMethod(Exception ex){
   log.info("The number of concurrency limit exceeded");
   return null;
} 

解决方法

只需使用其他fallbackMethod签名:

public void fallbackMethod(BulkheadFullException ex){
   log.info("The number of concurrency limit exceeded");
   return null;
} 

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...