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