3 Stimmen

C# Anfrage-Warteschlange

Mein Webdienst verwendet eine andere API, um Daten zu erhalten. Ich cache die Daten, bereinige sie und gebe sie dem Benutzer zurück, wenn er eine Anfrage stellt. Im Moment erhalte ich viele Anfragen, und da ich nur zwei Mal pro Sekunde auf die Daten-API zugreifen kann, erhalte ich Fehler zurück, was bedeutet, dass einige Benutzer die Daten nicht erhalten, andere aber schon.

Was ich tun möchte, ist jede Anforderung zu einer Warteschlange hinzufügen und verarbeiten Sie 1 von einem mit einem 0,4 Sekunden Schlaf zwischen ihnen. er Warteschlange müsste die ganze Zeit ausgeführt werden, um sicherzustellen, dass alle Anforderungen verarbeitet werden.

Wie würde ich dies in ASP.NET 3.5 tun?

5voto

John Saunders Punkte 159011

Kurz gesagt, schlage ich vor, dass Sie einen Windows-Dienst erstellen, um eine MSMQ-Warteschlange zu verarbeiten. Ihr bestehender Webdienst würde Anfragen in diese Warteschlange stellen.

Ihr Dienst muss jedoch ein asynchroner Webdienst werden. Auf diese Weise wird Ihr Dienst, während er auf eine Antwort "wartet", nicht einen Anfrage-Thread blockieren.

Verwenden Sie übrigens ASMX-Webdienste oder WCF-Dienste? Davon hängt ab, wie Sie den Dienst asynchron machen können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X