/// <summary> /// 初始化 /// </summary> /// <param name="setting"></param> public BaseFetcher(NDisconfSetting setting) { this._setting = setting; var strategy = this._setting.UpdateStrategy; this._policy = Policy.Handle <Exception>().WaitAndRetry(strategy.RetryTimes, i => TimeSpan.FromSeconds(strategy.RetryIntervalSeconds), (e, t, c) => { _logger.Error(e, "Request Resource: " + c["Resource"]); }); this._client = new RestClient(this._setting.WebApiHost); }
/// <summary> /// 根据配置进行实例化 /// </summary> /// <param name="setting"></param> public NDisconfFetcher(NDisconfSetting setting) : base(setting) { }
/// <summary> /// 通过反射获取IFetcher实例,注意所有IFetcher实现均存在一个NDisconfSetting参数的构造函数 /// </summary> /// <param name="setting"></param> /// <returns></returns> public static IFetcher GetFetcher(NDisconfSetting setting) { return((IFetcher)Activator.CreateInstance(Type.GetType(setting.FetcherType), setting)); }