Documentation
¶
Overview ¶
Package timeout is a middleware that responds with a timeout error after the given duration.
`grpc_timeout` are interceptors that timeout for gRPC client calls.
Client Side Timeout Middleware ¶
Please see examples for simple examples of use.
Example (Initialization) ¶
Initialization shows an initialization sequence with a custom client request timeout.
package main
import (
"context"
"log"
"time"
"github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/timeout"
"github.com/grpc-ecosystem/go-grpc-middleware/v2/testing/testpb"
"google.golang.org/grpc"
)
func main() {
clientConn, err := grpc.NewClient(
"ServerAddr",
grpc.WithUnaryInterceptor(
// Set your client request timeout.
timeout.UnaryClientInterceptor(20*time.Millisecond),
),
)
if err != nil {
log.Fatal(err)
}
// Initialize your grpc service with connection.
testServiceClient := testpb.NewTestServiceClient(clientConn)
resp, err := testServiceClient.Ping(context.TODO(), &testpb.PingRequest{Value: "my_example_value"})
if err != nil {
log.Fatal(err)
}
// Use grpc response value.
log.Println(resp.Value)
}
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func UnaryClientInterceptor ¶
func UnaryClientInterceptor(timeout time.Duration) grpc.UnaryClientInterceptor
UnaryClientInterceptor returns a new unary client interceptor that sets a timeout on the request context.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.