在我的 SpringBoot 应用程序中,我有一个可以发送 POST 请求的客户端。在 POST 期间,它可能有几个例外。
如果出现 2 个不同的异常,我希望有一个重试逻辑。但在某种程度上,max-retry-attempts 应该对每个异常生效,而不是一起生效。很难解释,但举个例子:
max-retry-attempts 配置为 3。如果我得到 exception1 类型,而不是重试,我还有 2 次重试。再试一次,再次获得 exception1,然后重试,现在我还剩 1 次重试。再试一次,现在我得到了 exception2,然后再试一次,现在我还有 2 次重试,因为之前的重试是针对 exception1 而不是针对 exception2。所以exception2重试才刚刚开始。
可能吗?我尝试了这个,但这并没有从重试尝试开始,如果发生了异常1,然后发生了异常2,那么我还有1次重试:
@Retryable(maxAttempts = 3, value = {Exception1.class, Exception2.class}, backoff = @Backoff(delay = 3000, multiplier = 2))