英文:
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.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论