Thrift中长时间运行的任务

时间:2016-04-28 15:48:48

标签: rpc thrift bidirectional

我打算使用Apache Thrift,但有些调用会长时间运行/阻塞,但仍然需要返回值,传统上它将通过回调返回。

我理解Thrift does not support回调(这改变了吗?)所以我正在考虑让函数暂停,直到返回响应。这样可以吗?如果RPC请求花费太长时间,Thrift会抱怨(超时)吗?

他们说Thrift不是用于双向通信,但它应该很容易用插座。

上下文:我在本地两个进程之间使用Thrift或IPC,因此服务器上不会有很大的负载,可以减轻长时间运行的HTTP请求会使服务器超载的担忧。

我错过了其他东西提供的解决方案吗?

1 个答案:

答案 0 :(得分:1)

  

我知道Thrift不支持回调(这改变了吗?)

否(不支持),否(未更改)。

  

有些调用会长时间运行/阻塞,但仍然需要返回值,传统上它将通过回调返回。

是的,如果你想坚持做RPC的做事方式,或者在这方面技术上有限。

  

所以我正在考虑让函数阻塞直到响应   回。这样可以吗?

长时间通话是完全合法的解决方案。甚至轮询也可以是一种选择,当然除非你通过电话充斥服务器。取决于" long"完全是指。

  

如果RPC请求花费太长时间,Thrift会抱怨(超时)吗?

您可以在连接断开后始终发起新请求。

  

他们说Thrift并不打算进行双向通信   但它应该很容易使用套接字。

在本地设置中,两端都充当客户端服务器确实可行,并且在您的情况下可能是更好的选择。

相比之下,在interblag中做到这一点要困难得多。因此,如果您有强烈的计划将解决方案稍后扩展到这种情况,这可能会产生一些额外的麻烦,将bidi解决方案重写为长时间运行的调用。如果不是这样,你可以放心地忽略这一段。