第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Polly 庫實(shí)現(xiàn)重試邏輯,無需重復(fù)處理異常

使用 Polly 庫實(shí)現(xiàn)重試邏輯,無需重復(fù)處理異常

C#
汪汪一只貓 2021-11-28 17:54:44
如何使用 polly 實(shí)現(xiàn)重試邏輯以重試永遠(yuǎn)執(zhí)行一個函數(shù)但有一些延遲但不處理異常。該場景是重復(fù)獲取狀態(tài)信息,但沒有預(yù)期的異常。
查看完整描述

2 回答

?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗 獲得超8個贊

Polly 并非設(shè)計為 Cron 作業(yè)工具,并且有意不針對該用例。Polly 的重試重點(diǎn)是單個操作的彈性(重試直到成功)而不是重復(fù)調(diào)用成功的東西)。


對于其他選項(如果有用):

如果執(zhí)行之間的延遲足以在執(zhí)行之間釋放執(zhí)行資源(線程或堆棧),請考慮:


如果延遲足夠?。ū热缑?5 秒一次),不值得釋放和重新獲取執(zhí)行資源,您可以簡單地使用具有延遲的無限循環(huán)。例如,如果異步:

while (true)

{

    // Do my repeated work


    await Task.Delay(TimeSpan.FromSeconds(5));

}

如果你想取消(優(yōu)雅地結(jié)束一個程序),當(dāng)然你可以用取消來擴(kuò)展它:


// for some CancellationToken cancellationToken

while (!cancellationToken.IsCancellationRequested)

{

    // Do my repeated work


    await Task.Delay(TimeSpan.FromSeconds(5), cancellationToken);

}

定期作業(yè)調(diào)度程序(例如 HangFire)的一個優(yōu)點(diǎn)是,如果其中一個執(zhí)行崩潰,下一個調(diào)度調(diào)用仍將運(yùn)行。無論您采用何種解決方案,您都應(yīng)該考慮如果定期作業(yè)的一次執(zhí)行失敗,您希望發(fā)生什么。


查看完整回答
反對 回復(fù) 2021-11-28
?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗 獲得超6個贊

您最好使用適用于像 Hangfire 這樣的 CRON 作業(yè)的東西。


但萬一你真的想和波莉一起做。這是您如何做到的。


 await Policy

            .HandleResult<bool>(c => c == false)  //you can add other condition

            .WaitAndRetryForeverAsync(i => TimeSpan.FromMinutes(i))

            .ExecuteAsync(async () =>

            {

                await DoSomethingAsync();

                return true;  //return false to stop execution

            });

https://github.com/App-vNext/Polly/wiki/Retry#retry-to-refresh-authorization


查看完整回答
反對 回復(fù) 2021-11-28
  • 2 回答
  • 0 關(guān)注
  • 244 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號