3

Resilience4j-circuitbreaker 允许我们使用装饰器函数来包装服务,但据我所知,它只允许诸如供应商、消费者和函数之类的功能接口最多接受 1 个输入。

如果我有一个服务,它有一个接受 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),那么哪个装饰器函数可以用于此目的?

4

1 回答 1

3

你可以使用CircuitBreaker.decorateCallable

CircuitBreaker.decorateCallable(circuitBreaker, () -> service.process(i, s))
于 2019-05-15T07:05:51.797 回答