SpringCloud 重試模板

2023-11-26 16:18 更新

RetryTemplateSpring重試庫(kù)的一部分。盡管涵蓋RetryTemplate的所有功能超出了本文檔的范圍,但我們將提及以下與RetryTemplate特別相關(guān)的使用者屬性:

maxAttempts

處理消息的嘗試次數(shù)。

默認(rèn)值:3。

backOffInitialInterval

重試時(shí)的退避初始間隔。

默認(rèn)值1000毫秒。

backOffMaxInterval

最大退避間隔。

默認(rèn)值10000毫秒。

backOffMultiplier

退避乘數(shù)。

默認(rèn)為2.0。

defaultRetryable

retryableExceptions中未列出的由偵聽(tīng)器引發(fā)的異常是否可以重試。

默認(rèn)值:true。

retryableExceptions

鍵中Throwable類名稱的映射,值中布爾值的映射。指定將要重試的那些異常(和子類)。另請(qǐng)參見(jiàn)defaultRetriable。示例:spring.cloud.stream.bindings.input.consumer.retryable-exceptions.java.lang.IllegalStateException=false。

默認(rèn)值:空。

盡管上述設(shè)置足以滿足大多數(shù)自定義要求,但它們可能無(wú)法滿足某些復(fù)雜的要求,此時(shí),您可能希望提供自己的RetryTemplate實(shí)例。為此,在應(yīng)用程序配置中將其配置為bean。應(yīng)用程序提供的實(shí)例將覆蓋框架提供的實(shí)例。另外,為避免沖突,必須將綁定程序要使用的RetryTemplate實(shí)例限定為@StreamRetryTemplate例如,

@StreamRetryTemplate
public RetryTemplate myRetryTemplate() {
    return new RetryTemplate();
}

從上面的示例中可以看到,由于@StreamRetryTemplate是合格的@Bean,因此無(wú)需使用@Bean對(duì)其進(jìn)行注釋。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)