【发布时间】:2021-08-18 10:01:01
【问题描述】:
我正在使用 Spring JmsTemplate 发送消息。我想介绍resilience4j 以允许我使用Fallback,这样当第一次调用失败时,它会使用另一个配置不同的JmsTemplate 发送消息。
我有这个方法:
void sendMessage(JmsTemplate jmsTemplate, String body) {
jmsTemplate.send(...);
}
问题是Decorators.ofCallable 或Decorators.ofConsumer 没有给我withFallback 选项
如果我更改 sendMessage 方法以返回一些字符串,我可以使用以下内容。
Decorators.ofCallable(() -> sendMessage(primaryJmsTemplate, body))
.withFallback(s -> sendMessage(secondaryJmsTemplate, body))
.withCircuitBreaker(circuitBreaker).call();
我宁愿不返回随机值只是为了让它工作。可调用/消费者不允许回退是否有原因?或者有没有其他方法可以使用resilience4j 实现我想要的?
【问题讨论】:
标签: resilience4j