invoke method

  1. @override
Future invoke(
  1. Context ctx,
  2. Invoker invoker,
  3. Invocation invocation
)
override

Invoke the next filter. invoker Service invoker. invocation Service invocation

Implementation

@override
Future<dynamic> invoke(
    Context ctx, Invoker invoker, Invocation invocation) async {
  int retries = min(invocation.execution.schema().retries, 3);
  for (var i = 0; i < retries - 1; i++) {
    try {
      return await invoker.run(ctx, invocation);
    } catch (e) {
      if (e is! TimeoutException && e is! TimeoutExceptionx) {
        rethrow;
      }
      info('Retry with $e');
    }
  }
  return await invoker.run(ctx, invocation);
}