gpt4 book ai didi

spring - Spring @Retryable 中针对不同异常的不同重试尝试

转载 作者:行者123 更新时间:2023-12-04 16:08:39 46 4
gpt4 key购买 nike

在我的 SpringBoot 应用程序中,我有一个客户端,它可以发送一个 POST 请求。在 POST 期间,它可能有几个异常(exception)。

如果出现 2 个不同的异常,我想有一个重试逻辑。但是在某种程度上,最大重试尝试次数应该对每个异常生效,而不是一起生效。很难解释,但举个例子:

max-retry-attempts 配置为 3。如果我得到异常 1 类型,然后重试,我还有 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))

最佳答案

您必须创建自定义重试策略;并将其配置为 RetryTemplateRetryOperationsInterceptor ;使用 interceptor注释上的属性以引用拦截器。

关于spring - Spring @Retryable 中针对不同异常的不同重试尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46911668/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com