2013-01-20 268 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管理啓動並等待。我離開這個作爲我的答案,讓人們有另一種選擇。