我正在尝试使用C#观察值编写重试机制。重试具有重试次数和重试间隔重试应执行“ OnExecute”方法。在每个异常上,它将执行“ OnCatch”方法。这是我尝试做的事情:public static IObservable<T> Retry(GenericRetryExecutorRequest<T> request){ var source = Observable.Timer(TimeSpan.Zero, request.Interval) .Select(item => { return request.GenericRetryActions.OnExecute(); }); var retryObservable = source .Retry(request.RetryCount) .Catch(source); return retryObservable;}public class GenericRetryExecutorRequest<T>{ public int RetryCount { get; set; } = 3; public TimeSpan Interval { get; set; } = new TimeSpan(0,0,0,5); public IGenericRetryActions<T> GenericRetryActions { get; set; }}public interface IGenericRetryActions<out T>{ T OnExecute(); void OnCatch();}不幸的是-它表现不佳:OnCatch抛出异常时,我不知道如何执行。我尝试了很多方法都没有成功。OnExecute 似乎不会重复执行(以请求间隔),以防它引发异常。
1 回答
- 1 回答
- 0 关注
- 143 浏览
添加回答
举报
0/150
提交
取消