SpringCloud 重试模板
RetryTemplate
是Spring重试库的一部分。尽管涵盖RetryTemplate
的所有功能超出了本文档的范围,但我们将提及以下与RetryTemplate
特别相关的使用者属性:
- maxAttempts
处理消息的尝试次数。
默认值:3。
- backOffInitialInterval
重试时的退避初始间隔。
默认值1000毫秒。
- backOffMaxInterval
最大退避间隔。
默认值10000毫秒。
- backOffMultiplier
退避乘数。
默认为2.0。
- defaultRetryable
retryableExceptions
中未列出的由侦听器引发的异常是否可以重试。默认值:
true
。- retryableExceptions
键中Throwable类名称的映射,值中布尔值的映射。指定将要重试的那些异常(和子类)。另请参见
defaultRetriable
。示例:spring.cloud.stream.bindings.input.consumer.retryable-exceptions.java.lang.IllegalStateException=false
。默认值:空。
尽管上述设置足以满足大多数自定义要求,但它们可能无法满足某些复杂的要求,此时,您可能希望提供自己的RetryTemplate
实例。为此,在应用程序配置中将其配置为bean。应用程序提供的实例将覆盖框架提供的实例。另外,为避免冲突,必须将绑定程序要使用的RetryTemplate
实例限定为@StreamRetryTemplate
。例如,
@StreamRetryTemplate public RetryTemplate myRetryTemplate() { return new RetryTemplate(); }
从上面的示例中可以看到,由于@StreamRetryTemplate
是合格的@Bean
,因此无需使用@Bean
对其进行注释。
更多建议: