[筆記]簡易版在C#中使用App-vNext Polly 實作重試(Retry)機制

簡單紀錄如何使用App-vNext Polly 實作重試(Retry)機制

範例程式

public static int idx = 0;
void Main()
{
	idx = 0;
	string result = "";
	Policy

		//要處理的是什麼樣的例外(e.g. Exception、HttpRequestException)
		.Handle<Exception>()
		//重試次數及發生錯誤時的錯誤訊息紀錄等...的處理
		.Retry(3, (exception, retryCount) =>
				  {
					  Console.WriteLine($"第 {retryCount} 次重試 | 錯誤訊息 :{exception.Message}");
				  })
   // 要執行的任務
   .Execute(() => MyTest(ref result));
	result.Dump();
}

// You can define other methods, fields, classes and namespaces here
static void MyTest(ref string reault)
{
	if (idx != 3)
	{
		idx++;
		throw new ArithmeticException($"Error-{idx}");
	}

	Console.WriteLine("成功完成");
	reault = "Success";
}
模擬超過重試次數仍然失敗的狀況

這只是簡易使用的筆記

要更多詳細資料可以參考下方的參考資料

參考資料:

https://github.com/App-vNext/Polly
https://www.dotblogs.com.tw/yc421206/2020/12/23/how_to_use_polly
https://marcus116.blogspot.com/2019/06/netcore-polly-retry.html