Polly 重試機制

2022-07-12 06:27:11 字數 2086 閱讀 9331

引用 install-package microsoft.extensions.http.polly

在core中的使用

方式一:先配置再執行

注意:執行 executeasync 方法,異常會丟擲

方式二:邊配置邊執行

result = await

policy

.handle

(ex => ex.code == 404

) .retryasync(

3,async (ex, index) =>

).executeasync(() => testgetstring()); //

這裡可以對方法進行重試

方式三:在startup.cs中配置

單個異常

policy

.handle

() //

處理單個異常

自定義異常

.handle()    //

處理單個自定義異常

自定義異常帶條件

.handle(ex => ex.code == 404)    //

處理單個自定義異常帶條件

多個異常

.handle(ex => ex.code == 404)    //

處理單個自定義異常帶條件

.or() //

處理多個異常

單個結果

處理結果,帶條件

多個結果

處理結果,帶條件

處理多個結果,帶條件

有限重試

.retryasync(        //

有限重試

3, //

重試總次數

onretry: (ex, retrycount) =>

)

無限重試

.retryforeverasync( //

無限重試

onretry: ex =>

)

等待時間重試

.waitandretryasync(     //

等待指定時間再重試

3, //

重試總次數

waittime => timespan.fromseconds(2), //

等待時間

onretry: (ex, ts, context) =>

)

無限重試,等待時間

.waitandretryforeverasync(  //

無限重試,等待時間再重試

waittime => timespan.fromseconds(2), //

等待時間

onretry: (ex, ts, context) =>

)

中斷重試機制

原文 中斷重試 中斷重試機制 public abstract class retrytemplate public retrytemplate setsleeptime int sleeptime this sleeptime sleeptime return this public intgetr...

Spring重試機制

org.springframework.retrygroupid spring retryartifactid dependency org.springframework.bootgroupid spring boot starter aopartifactid dependency 程式啟動類新...

ActiveMQ重試機制

1.activemq重試機制是什麼?消費者收到訊息,之後出現異常了,沒有告訴broker確認收到該訊息,broker 會嘗試再將該訊息傳送給消費者。嘗試 n次,如果消費者還是沒有確認收到該訊息,那麼該訊息將被放到死信佇列中,之後 broker 不會再將該訊息傳送給消費者。2.具體哪些情況會引發訊息重...