问题标签 [spring-retry]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - @Retryable 在 spring-data 存储库接口中不起作用
在我向 spring-data-cassandra 存储库接口添加@Retryable
注释后,现在应用程序无法启动并出现以下异常:
应用程序无法启动
行动:
添加proxyTargetClass=true
到@EnableAsync
和@EnableCaching
,甚至到@EnableRetry(proxyTargetClass = true)
@EnableAspectJAutoProxy(proxyTargetClass = true)
但还是不行。
删除后@Retryable
,一切正常。
检查了代码,没有@Retryable
,在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(String, Class<T>, Object[], boolean)
requiredType.isAssignableFrom(bean.getClass())
也是_true
但添加后@Retryable
:
所以现在requiredType.isAssignableFrom(bean.getClass()))
是false
并getTypeConverter().convertIfNecessary(bean, requiredType)
抛出异常。
任何人都可以请帮助或提供一些线索如何解决它?谢谢你的帮助。
java - 在 Spring 集成中重试 http:outbound-gateway 的建议
我正在尝试为<int-http:outbound-gateway>
. 我有以下配置:
在Logback 中DEBUG
启用级别org.springframework.integration
后,我可以看到 RetryAdvice 正在执行但没有任何重试尝试。
这是预期的行为吗?例如,我收到 404 错误,我预计至少会看到 3 次尝试(重试计数类似于 service-activator),但此时只有一次没有重试计数。
使用 http-outbound-gateway 调用 retryAdvice 的最佳方法是什么?
java - 如果没有设置 maxDelay,Spring retryTemplate 会过早触发
我希望我的 RetryTemplate 延迟 300000 毫秒 - 每次尝试 5 分钟乘以 1.1。但是,它只会将下一次尝试延迟 30 秒。这是一个简化的示例:
日志是在这些时间制作的:
如果我在有或没有调度程序的情况下使用它并没有什么区别(因为原始代码需要初始延迟。)
现在,如果我添加一个 maxDelay 到@Backoff
它完全按预期工作 - 5 分钟后发射,然后 5*1.1 分钟后发射,依此类推。但是阅读@Backoff - maxDelay的javadoc,它说它默认为0并且如果小于延迟则被忽略
有什么我不明白的吗?似乎 maxDelay 默认为 30 秒,这与 javadoc 解释的完全不同。
使用的 spring-retry 版本是 1.1.3
spring - spring retry 找到最后一次重试
我正在使用Spring-retry-1.2.0,重试工作正常,但在我的方法中,我想知道重试是否是最后一次重试,是否有任何方法可以获取 retrialCount 或春季的最后一次重试-重试?
重审.java
Artem Bilan 发表评论后所做的更改
重试配置
Offers.java
任何帮助都是不言而喻的。
java - 如何将 Spring Boot 中的配置属性注入 Spring Retry 注释?
在 Spring Boot 应用程序中,我在 yaml 文件中定义了一些配置属性,如下所示。
还有一个示例 bean
如何将值注入my.app.maxAttempts
Spring my.app.backOffdelay
Retry 注释?在下面的示例中,我想将10
maxAttempts 和500L
backoff 值的值替换为配置属性的相应引用。
java - Spring 重试和恢复
是否可以从异常中恢复,然后使用 Spring Retry 重试?
在Java中,会像
谢谢!!
java - 春季重试:NeverRetryLogic 无法按预期使用 ExceptionClassifierRetryPolicy
我正在重试场景中工作(与 http 出站网关相关)。重试逻辑运行良好,但我不重试的逻辑看起来有一个错误。
如果我收到不同于 404,500,503,504 的 http 状态错误,我想做的是不重试。
为了对其进行测试,我有一个可配置的端点,我可以将其配置为在成功之前响应任何 http 状态错误 X 次。
例如,我可以将我的端点配置为在我第一次点击它时获得 http 400 状态,之后,当我重试时,我会得到一个成功的响应。
也就是说,我所期待的是,当我第一次将端点配置为获得 http 400 状态时,永远不会重试,但看起来这不起作用。
我对永不重试场景的逻辑是这样的:
CustomRetryPolicy 是这样的:
根据NeverRetryPolicy
班级,它应该这样做:
允许第一次尝试但从不允许重试的 RetryPolicy。也可用作其他策略的基类,例如作为存根用于测试目的。
所以我的理解是,第一次尝试是当我们到达端点时,我们收到 http 400 错误状态,然后再也不重试。
那有什么问题?
java - Spring Retry Junit:使用自定义重试策略测试重试模板
rabbitmq - 代理连接中断时的 Spring AMQP 消息弹性
我有一个在 RabbitMQ 服务器连接中断的情况下管理 Spring AMQP 客户端消息弹性的用例,
同样,我使用了 Spring Retry
但是,当尝试对其进行测试并将代理关闭时,它会挂在 template.convertAndSend() 并且即使在 RabbitMQ 代理连接恢复时也不会恢复
spring-data-jpa - JPA乐观锁获取不到最新版本
我正在使用 JPA 的乐观锁和 spring data jpa 并使用 spring retry for ConcurrencyFailureException
,但是发生了一些我无法理解的事情。
我的测试代码如下:
我在 处添加了一个断点Account account = accountService.findOne("abee19e08d3d4ee79d9f831c3ed78344");
,然后我在 mysql 中运行一个事务来更改version
帐户。
之后,testOptimistic
方法抛出ConcurrencyFailureException
,方法重试,在我看来,下一次它会成功但又失败了,最后第三次成功了,我只是无法理解。
Hibernate SQL 的日志如下所示
您可以看到select version from account where id =?
第三次执行两次,任何人都可以解释一下吗?!
非常感谢!