【发布时间】:2018-06-30 20:14:54
【问题描述】:
在异步上下文中遇到 @Retryable 问题,我有一个返回 SocketTimeOut 异常的服务调用。我本来希望重试 3 次,我确实有 @EnableRetry,但是我在日志中看到了一些我有点奇怪的东西,一个睡眠中断异常。这是堆栈跟踪的一部分。
引起:java.lang.InterruptedException:睡眠中断 在 org.springframework.retry.interceptor.RetryOperationsInterceptor.invoke(RetryOperationsInterceptor.java:118) ~[spring-retry-1.2.1.RELEASE.jar!/:na] 在 someservice.somemethod(someservice.java) ~[classes/:na] 2018-01-18 18:59:39.818 INFO 14 --- [lTaskExecutor-1] someExceptionHandler:线程在睡眠时中断;嵌套异常是 java.lang.InterruptedException: sleep interrupted 在 org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:30) ~[spring-retry-1.2.1.RELEASE.jar!/:na] 在 org.springframework.retry.backoff.StatelessBackOffPolicy.backOff(StatelessBackOffPolicy.java:36) ~[spring-retry-1.2.1.RELEASE.jar!/:na] 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_141] 在 org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673) ~[spring-aop-4.3.8.RELEASE.jar!/:4.3.8.RELEASE] 在 org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738) ~[spring-aop-4.3.8.RELEASE.jar!/:4.3.8.RELEASE]
不确定这是否是一个红鲱鱼,但这发生在读取超时发生后,我原以为它会重试,但我在日志中看到了这一点。我知道 Spring 重试的默认等待时间为 1 秒,我想知道它是否被中断从而影响其重试能力。
T.I.A
【问题讨论】:
标签: java interrupted-exception spring-retry