2009-06-21 7 views
3

Mon service Web utilise une autre API pour obtenir des données. Je cache les données, les nettoie et les renvoie à l'utilisateur lorsqu'il fait une demande. Pour le moment, je reçois beaucoup de demandes et parce que je ne peux accéder à l'API de données que 2 fois par seconde, je reçois des erreurs, ce qui signifie que certains utilisateurs n'obtiennent pas les données et d'autres le font. Ce que je veux faire est d'ajouter chaque requête à une file d'attente et de les traiter une à une avec un temps de sommeil de 0,4 secondes entre elles. La file d'attente devrait être exécutée tout le temps pour s'assurer que toutes les demandes sont traitées.C# Request Queue

Comment est-ce que je ferais ceci dans ASP.NET 3.5?

Répondre

5

En bref, je vous suggère de créer un service Windows pour traiter une file d'attente MSMQ. Votre service Web existant mettrait les demandes dans cette file d'attente. Toutefois, votre service devra devenir un service Web asynchrone. De cette façon, en "attendant" une réponse, votre service ne bloquera pas un thread de demande.

BTW, utilisez-vous les services Web ASMX ou les services WCF? Cela déterminera comment rendre le service asynchrone.

+0

Pour être honnête, je suis en train d'utiliser une page d'affichage MVC qui renvoie JSON en fonction des détails de l'URL. Le contrôleur mvc obtient les variables et envoie une liste d'éléments à la page d'affichage pour qu'il les affiche. Est-il vraiment nécessaire d'avoir un service Web autonome pour gérer les demandes? Si oui quel type de service pensez-vous serait le meilleur. –

+0

N'avez-vous pas dit que vous deviez faire la queue des demandes? –

+0

Oui, j'ai besoin de quelque chose à faire la queue et à les manipuler. –

Questions connexes