Resilience4j-circuitbreaker允许我们使用装饰器函数包装服务,但是据我所知,它仅允许接受最多1个输入的功能接口,例如Supplier,Consumer和Function。
如果我有一个服务,该服务的方法可以接受2个参数,那么如何将其与断路器一起包装?
在https://www.baeldung.com/resilience4j中:
interface RemoteService {
int process(int i);
}
CircuitBreakerRegistry registry = CircuitBreakerRegistry.of(config);
CircuitBreaker circuitBreaker = registry.circuitBreaker("my");
Function<Integer, Integer> decorated = CircuitBreaker
.decorateFunction(circuitBreaker, service::process);
如果process(int i)类似于process(int i,String s),那么哪个装饰函数可以用于此目的?
答案 0 :(得分:0)
您可以使用CircuitBreaker.decorateCallable
:
CircuitBreaker.decorateCallable(circuitBreaker, () -> service.process(i, s))