public Task <TResult> ExecuteAsync <TResult>(Func <Task <TResult> > action, CancellationToken token)
 {
     return(_retry.ExecuteAsync(() =>
     {
         return _circuitBreaker.ExecuteAsync(_ =>
         {
             return action();
         }, token);
     }, token));
 }