我正在尝试在我的Spring Integration项目中配置重试功能,我正在尝试按照此article部分3.3.1中提供的详细信息连接到Rabbit服务器。但看起来重审政策并没有开始。 这就是我在配置中的含义:
<!-- Spring AMQP Template -->
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory" retry-template="retryTemplate"
exchange="myExchange" />
<bean id="retryTemplate" class="org.springframework.retry.support.RetryTemplate">
<property name="backOffPolicy">
<bean class="org.springframework.retry.backoff.ExponentialBackOffPolicy">
<property name="initialInterval" value="8" />
<property name="multiplier" value="100.0" />
<property name="maxInterval" value="100000" />
</bean>
</property>
<property name="retryPolicy">
<bean class="org.springframework.retry.policy.SimpleRetryPolicy">
<property name="maxAttempts" value="3"/>
</bean>
</property>
</bean>
<!-- Spring AMQP Admin -->
<rabbit:admin connection-factory="connectionFactory" />
基于该片段,我预计重试会以指数间隔发生3次。但根据日志,我看到重试尝试以7秒的间隔进行,并且它会一直持续(3次后不会停止)。
想知道是否有人可以指出我的配置有什么问题。
答案 0 :(得分:2)
首先,maxattempts=3
表示3次尝试(2次重试),因此您应该看到初始尝试,8ms后再次尝试,然后是800ms后的最终尝试。
乘数100似乎过多 - 下一次尝试(如果maxattempts为4)将在80秒后出现。
我建议您启用DEBUG日志记录以遵循重试进度。