我正在设计一个具有阻塞功能的 SDK(在 Golang 中),它应该与通过回调返回的结果异步运行。我一直在使用Gorilla Toolkit RPC 库,这很棒,但我没有看到返回异步调用值的方法。也许我遗漏了一些东西并且 RPC 模型不支持异步调用,我的意思是所有调用都被阻塞,即使很长一段时间也是如此。如果是这种情况,我假设没有 HTTP 超时?如何使用通过回调返回的返回值来实现异步 RPC 调用。澄清一下:我不能使用典型的 Go Channel 方法进行回调,因为我将通过 HTTP 从另一种语言调用 RPC。所以我的问题是,有没有办法在执行 RPC 时通过 HTTP 实现回调,或者调用是否应该阻塞,即使很长时间直到准备好返回值?
2 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
我不了解 Gorilla,但在Go 标准库的net/rpc包中,你会发现这个方法net/rpc/Go。它异步进行 RPC 调用,你给它一个通道作为参数,这样你就可以在远程过程调用完成时检索 RPC 回复。
net/rpc/Call也进行 RPC 调用,但它会阻塞直到调用完成。如果你知道如何使用通道,我相信你会用 Go 方法得到你想要的。
- 2 回答
- 0 关注
- 267 浏览
添加回答
举报
0/150
提交
取消
