2 votes

Attendre que les demandes asynchrones de thrift se terminent

J'invoque de multiples appels asynchrones de thrift de mon code. J'aimerais attendre qu'ils soient tous terminés avant de passer à l'étape suivante.

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.

Je peux avoir un compte à rebours dans le callback comme wait/notify et obtenir ce résultat. Mais est-ce que le thrift le système permet-il de faire attendre l'appel de ma fonction asynchrone, de préférence avec un délai d'attente ?

Je n'en ai pas vu dans le TAsyncClientManager ou dans le AsyncClient . Veuillez m'aider.

0voto

melchi Points 31

Étant donné qu'il n'était pas possible de le faire, j'ai utilisé le client api sync et géré le lancement et l'attente à l'aide d'exécuteurs et de launchAll. Je laisse cette réponse pour que les gens aient une alternative.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X