retryUnary<R, Q> function

Future<R> retryUnary<R, Q>(
  1. ResponseFuture<R> rpc(
    1. Q request, {
    2. CallOptions? options,
    }),
  2. Q request, {
  3. dynamic onRetry(
    1. Exception
    )?,
  4. Duration delayFactor = const Duration(milliseconds: 200),
  5. double randomizationFactor = 0.25,
  6. Duration maxDelay = const Duration(seconds: 5),
  7. int maxAttempts = 5,
})

Implementation

Future<R> retryUnary<R, Q>(
  $grpc.ResponseFuture<R> Function(Q request, {$grpc.CallOptions? options}) rpc,
  Q request, {
  Function(Exception)? onRetry,
  Duration delayFactor = const Duration(milliseconds: 200),
  double randomizationFactor = 0.25,
  Duration maxDelay = const Duration(seconds: 5),
  int maxAttempts = 5,
}) async {
  final response = await retry<R>(
    () => rpc.call(request),
    retryIf: (e) {
      return e is $grpc.GrpcError && e.code == $grpc.StatusCode.unauthenticated;
    },
    onRetry: onRetry,
    delayFactor: delayFactor,
    randomizationFactor: randomizationFactor,
    maxDelay: maxDelay,
    maxAttempts: maxAttempts,
  );

  return response;
}