为了账号安全,请及时绑定邮箱和手机立即绑定

可观察的重试机制

可观察的重试机制

C#
一只萌萌小番薯 2021-05-13 18:19:13
我正在尝试使用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
提交
取消
意见反馈 帮助中心 APP下载
官方微信