Java + Resilience4J - 我自己的处理程序上的时间限制器?

Java + Resilience4J - Time limiter on my own handler?

请问关于 Resilience4j 的小问题。

目前,Resilience4J 提出了一个非常好的 TimeLimiter 模式。

有了它,可以非常方便地配置一个出站http调用的时间限制。比如我的服务A是用http客户端调用服务B,限时是等待服务B 1秒

如果配置正确,我们可以看到当服务 B 花费的时间超过 1 秒时,return 改为回退,某种“不再需要等待服务 B”。

我想知道,是否可以配置类似的,但是对于我自己的service/handler

我的意思是我想在我自己的服务 A 上设置一个 TimeLimiter。因为我有一个由 5 秒合同定义的 SLA,而不是告诉我所有的客户(“不要等我如果我花的时间超过 5 秒”),并让他们在他们的末端配置某种 TimeLimiter。

太天真了,我把 Resilience4J 时间限制器注解放在我自己的处理程序上,并在里面放了很长的计算,但没有用。我认为 Resilience4J 时间限制器更适合外呼。

请问有没有可能在我自己的服务A上有同样的机制?

谢谢

是的,你自己的服务A也是可以的。 但是您的服务必须 return CompletableFutureMonoFlux 以便 TimeLimiter 可以抛出异常。