在使用grpc的时候遇到了一个问题: 如何设置client端的超时时间? 网上搜了一大圈, 没有太明显的例子.
这里我们先看下看看grpc的helloworld例子:
client
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
|
稍微跟一下SayHello
的调用, 最后是调用到invoke
函数:
google.golang.org/grpc/call.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
|
这里值得注意的是context的超时设置. 仔细读下context的文档, 会发现context里面有对应的超时设置:
WithTimeout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
|
我们尝试在client调用之前设置context的超时:
client
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
|
为保证超时, 在sever代码中休息一会儿:
server
1
2
3
4
5
|
|
分别运行client和server两个程序, 会看见client端打印:
1
|
|
原文:https://www.cnblogs.com/ExMan/p/12119025.html