目录
背景
解决方案
实现方法
调用方法
背景在.NET中,异常是指成员没有完成它的名称宣称可以完成的行动。在异常的机制中,异常和某件事情的发生频率无关。有时候需要对一些失败的任务进行多次的重试,如果重试的次数达到我们设定的阀值,则再放弃任务。
解决方案使用一个静态类和静态的泛型方法来处理,创建通用的任务重试机制,我们可以使用Action作为参数。
实现方法using BQoolCommon.Service.ExtensionMethod;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace BQoolCommon.Service.Common
{
public static class CommonTools
{
static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
static int sleepMillisecondsTimeout = 1000;
///
/// 若發生 Exception (資料庫查詢逾時),重複執行相同動作
///
///
///
/// 預設重試 3次,傳入 0直接 return default(T)
///
public static T Retry(Func handler, int retryTimes = 3)
{
if (retryTimes
关注
打赏