2013-01-20 344 views
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. 

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

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

回答

0

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