2

我正在thrift从我的代码中调用多个异步调用。我想等待所有这些都完成,然后再继续我的下一个阶段。

for (...) {
  TNonblockingTransport transport = new TNonblockingSocket(host, port);
  TAsyncClientManager clientManager = new TAsyncClientManager();
  TProtocolFactory protocolFactory = new TBinaryProtocol.Factory();
  AsyncClient c = new AsyncClient(protocolFactory, clientManager, transport);
  c.function(params, callback);

}

// I would like to wait for all the calls to be complete here.

我可以在回调中进行倒计时,例如等待/通知并完成此操作。但是thrift系统是否允许我等待异步函数调用,最好是超时?

TAsyncClientManager我在或 中没有看到任何内容AsyncClient。请帮忙。

4

1 回答 1

0

鉴于不可能做到这一点,我使用了同步 api 客户端并使用 executors 和 launchAll 管理启动和等待。我将此作为我的答案,让人们有替代方案。

于 2013-09-20T10:47:45.153 回答