如何为Go gRPC设置SO_TIMEOUT

3
我正在使用Go和gRPC,并需要在客户端连接上设置套接字读取超时(因为所有可用的函数都是同步的)。似乎找不到任何可以在DialOption中设置的方法。有没有办法可以设置超时时间?
此外,是否有任何方式可以取消请求?
谢谢。

可能是RPC是否具有超时机制?的重复问题。 - Tinwor
你尝试过 go-cron 库吗:https://github.com/jasonlvhit/gocron?虽然它不是关于超时的,但也许你可以像阅读一样制定一个计划。 - Altenrion
1个回答

4
没有示例代码,我只能给出一个简单的答案而没有具体的例子。
如果您想设置超时时间,应该使用上下文。上下文接口提供了一个可以在上下文中设置的超时时间:godoc: Context 在gRPC包内,您可以使用上下文进行拨号的方法:godoc: DialContext 因此,请在上下文中设置超时时间,并在拨号时使用该上下文。

不客气。如果我的回答对您有帮助,我会很高兴得到一个赞。 - apxp
1
假设我进行了成功的拨号,并使用相同的连接对象进行所有后续的GRPC调用。使用这个配置,GRPC调用是否会超时,还是需要更多的配置? - aniztar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接