github.com/hxx258456/ccgo@v0.0.5-0.20230213014102-48b35f46f66f/go-grpc-middleware/retry/doc.go (about) 1 // Copyright 2016 Michal Witkowski. All Rights Reserved. 2 // See LICENSE for licensing terms. 3 4 /* 5 `grpc_retry` provides client-side request retry logic for gRPC. 6 7 Client-Side Request Retry Interceptor 8 9 It allows for automatic retry, inside the generated gRPC code of requests based on the gRPC status 10 of the reply. It supports unary (1:1), and server stream (1:n) requests. 11 12 By default the interceptors *are disabled*, preventing accidental use of retries. You can easily 13 override the number of retries (setting them to more than 0) with a `grpc.ClientOption`, e.g.: 14 15 myclient.Ping(ctx, goodPing, grpc_retry.WithMax(5)) 16 17 Other default options are: retry on `ResourceExhausted` and `Unavailable` gRPC codes, use a 50ms 18 linear backoff with 10% jitter. 19 20 For chained interceptors, the retry interceptor will call every interceptor that follows it 21 whenever when a retry happens. 22 23 Please see examples for more advanced use. 24 */ 25 package grpc_retry