How to set SO_TIMEOUT for Go gRPC

huangapple go评论155阅读模式
英文:

How to set SO_TIMEOUT for Go gRPC

问题

我正在使用Go语言的gRPC,并且需要在客户端连接上设置套接字读取超时时间(因为可用的函数都是同步的)。我找不到任何可以在DialOption中设置超时时间的方法。有没有办法可以设置超时时间?

另外,有没有办法取消一个请求?

谢谢。

英文:

I'm using gRPC with Go and needing to set the socket read timeout on the client connection (since the function available are all synchronous). Cannot seem to find anyway that I can set in the DialOption. Is there a way that I can set the timeout?

Also is there anyway that I can cancel a request?

Thanks.

答案1

得分: 4

没有示例代码,我只能给你一个简单的答案,没有具体的例子。

如果你想设置超时时间,你应该使用上下文(context)。上下文接口提供了一个可以在上下文中设置超时时间的方法:godoc: Context

在 gRPC 包中,你可以使用带有上下文的拨号方法:godoc: DialContext

所以,只需在上下文中设置超时时间,并在拨号时使用该上下文即可。

英文:

With no example code I can just give you a simple answer without a concrete example.

If you want to set a timeout you should use a context. The context interface provides a timeout which you can set inside the context: godoc: Context

Inside the gRPC package you have the method for dial with a context: godoc: DialContext

So just set the timeout inside your context and use the context when you dial.

huangapple
  • 本文由 发表于 2017年2月20日 13:33:11
  • 转载请务必保留本文链接:https://go.coder-hub.com/42337156.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定