Cela dépend un peu des services que vous appelez et de la durée de vos opérations.
Si vous lancez 1000 requêtes sur un même service, vous risquez d'être touché par la limitation du service avant que tous les appels au service puissent être reçus.
Il existe un phénomène similaire côté client. WCF autorisera seulement tant d'appels simultanés à la fois. C'est configurable dans une certaine mesure, mais je serais surpris si 1000 appels simultanés fonctionneraient sans un hick-up ou deux.
Si les appels finissent par être plus ou moins synchrones, je placerais toutes les requêtes dans une file d'attente et traiterais chaque appel à tour de rôle. Vous pouvez ensuite surveiller la file d'attente à partir de votre interface utilisateur pour mettre à jour les progrès au fur et à mesure que les appels au service sont terminés.
Si votre architecture prend en charge 1000 appels simultanés, alors la liaison duplex sera un bon ajustement. Vous pouvez simplement interroger pour l'achèvement.
Vous pouvez également créer un service pub/sub que le service cible met à jour lorsque les requêtes sont terminées. Votre client accèderait simplement aux événements du service pub/sub à mesure que les résultats des requêtes deviendraient disponibles.
Je suis d'accord avec le traitement dans un autre domaine d'application. L'exemple de distributeur NServiceBus est un motif sympa. Puisque les travailleurs rapportent au Distributeur, je parie que vous pourriez rapporter les progrès de cette file d'attente. –
NServiceBus a l'air intéressant. Je vais essayer. – Rohit