2017-10-04 4 views

Répondre

0

Eh bien, considérons que nous ne savons pas ce qui est derrière ce long processus. Seulement ce que nous savons que nous envoyons demande et attendons la réponse. Lorsque nous attendons l'appel de service, il n'y a aucune garantie sur la façon dont le serveur va fonctionner: peut-être qu'il va stocker la réponse pour l'appel idempotent suivant, peut-être tout simplement jeter tout et oublier. Ou réponse peut-être perdu sur le fil pendant que nous sommes timeout ...

C'est pourquoi nous ne considérons pas complètement le reply comme entité indépendante, mais juste comme une partie de l'ensemble de l'action demande-réponse. Par conséquent, si nous échouons au cours du délai d'attente, il n'y a pas d'autre moyen que de retenter la demande une fois de plus et d'attendre à nouveau la réponse. C'est déjà la responsabilité du serveur de réagir correctement à la même requête. Faites-moi savoir si vous avez une réflexion valable sur le sujet!

+0

Je suis d'accord avec la question de la responsabilité, mais parfois ce «long processus» dépasse les limites de mon application d'intégration. Nous avons donc décidé d'appliquer un délai d'expiration et de configurer une exception à lancer dans ce cas. De plus, si cela se produit, faites d'autres tentatives avant d'échouer définitivement. –