mirror of
https://github.com/zeromicro/go-zero.git
synced 2025-02-03 00:38:40 +08:00
zrpc client support block (#412)
This commit is contained in:
parent
7472d1e70b
commit
d239952d2d
@ -25,7 +25,7 @@ type (
|
|||||||
Endpoints []string `json:",optional=!Etcd"`
|
Endpoints []string `json:",optional=!Etcd"`
|
||||||
App string `json:",optional"`
|
App string `json:",optional"`
|
||||||
Token string `json:",optional"`
|
Token string `json:",optional"`
|
||||||
Timeout int64 `json:",optional"`
|
Timeout int64 `json:",default=2000"`
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -8,15 +8,12 @@ import (
|
|||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
const defaultTimeout = time.Second * 2
|
|
||||||
|
|
||||||
func TimeoutInterceptor(timeout time.Duration) grpc.UnaryClientInterceptor {
|
func TimeoutInterceptor(timeout time.Duration) grpc.UnaryClientInterceptor {
|
||||||
if timeout <= 0 {
|
|
||||||
timeout = defaultTimeout
|
|
||||||
}
|
|
||||||
|
|
||||||
return func(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn,
|
return func(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn,
|
||||||
invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
|
invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
|
||||||
|
if timeout == 0 {
|
||||||
|
return invoker(ctx, method, req, reply, cc, opts...)
|
||||||
|
}
|
||||||
ctx, cancel := contextx.ShrinkDeadline(ctx, timeout)
|
ctx, cancel := contextx.ShrinkDeadline(ctx, timeout)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
return invoker(ctx, method, req, reply, cc, opts...)
|
return invoker(ctx, method, req, reply, cc, opts...)
|
||||||
|
Loading…
Reference in New Issue
Block a user