我们通过直接扩展HystrixCommand类来使用Hystrix功能。但是对于某些业务异常(exception),Hystrix的后备方法已被触发。

我不想为某些业务特定的异常触发Hystrix后备。没有注释的情况下如何实现?

最佳答案

使用ignoreExceptions注释参数

@HystrixCommand(ignoreExceptions = { BaseException.class, MissingServletRequestParameterException.class, TypeMismatchException.class })

参见https://github.com/Netflix/Hystrix/tree/master/hystrix-contrib/hystrix-javanica#error-propagation

我看到您正在扩展HystrixCommand而不是使用批注,但这没关系,只需在命令中设置该属性即可,并且其效果相同。

不幸的是,Hystrix命令是由Builder模式创建的,因此您必须进行一些修改。 ignoreExceptions已添加到DefaultProperties.java,在HystrixCommandBuilder中使用

09-05 00:05