Ich arbeite an einer Klassenbibliothek, die Informationen von einer Website eines Drittanbieters abruft. Die Website, auf die zugegriffen wird, reagiert nicht mehr, wenn innerhalb eines festgelegten Zeitraums (~ 0,5 Sekunden) zu viele Anfragen gestellt werden.Wessen Verantwortung ist es, Web-Anfragen zu drosseln?
Die öffentlichen Methoden meiner Bibliothek beziehen sich direkt auf eine Ressource eine Datei auf dem Webserver. Mit anderen Worten, jedes Mal, wenn eine Methode aufgerufen wird, wird eine HttpWebRequest
erstellt und an den Server gesendet. Wenn alles gut geht, wird eine XML-Datei an den Aufrufer zurückgegeben. Wenn dies jedoch die zweite Webanforderung in weniger als 0,5 Sekunden ist, wird die Anforderung Timeout.
Mein Dilemma liegt darin, wie ich Anfrage Throttling behandeln sollte (wenn überhaupt). Natürlich möchte ich nicht, dass der Anrufer herumsitzt und auf eine Antwort wartet - vor allem, wenn ich absolut sicher bin, dass die Anfrage eine Zeitüberschreitung hat.
Wäre es sinnvoller, wenn meine Bibliothek die Webanforderungen, die ich erstelle, in Warteschlangen stellt und drosselt, oder sollte meine Bibliothek einfach eine Ausnahme auslösen, wenn der Client nicht lange genug zwischen API-Aufrufen wartet?
Justin. Ist die Website, auf die Sie zugreifen, Ihre oder eine dritte Partei? Meine "Good Citizen" -Kommentare beruhten darauf, dass es sich um eine dritte Partei handelte, aber andere scheinen ihre Website angenommen zu haben. – Andiih
Die Website ist in der Tat eine Website von Drittanbietern. Danke, dass du darauf hingewiesen hast, dass ich das nicht angegeben habe. Ich habe meine Frage zur Klärung aktualisiert. –