等待异步thrift请求完成

时间:2013-01-20 10:51:59

标签: asynchronous wait thrift

我正从我的代码中调用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.

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

我在TAsyncClientManagerAsyncClient中没有看到任何内容。请帮忙。

1 个答案:

答案 0 :(得分:0)

鉴于无法做到这一点,我使用了sync api客户端并管理启动并等待使用执行器和launchAll。我将这作为我的答案让人们有另一种选择。