Sto lavorando su una libreria di classi che recupera informazioni da un sito Web di terze parti. Il sito Web a cui si accede smetterà di rispondere se vengono eseguite troppe richieste entro un periodo di tempo impostato (~ 0,5 secondi).Di chi è la responsabilità di limitare le richieste web?
I metodi pubblici della mia libreria riguardano direttamente una risorsa un file sul server web. In altre parole, ogni volta che viene chiamato un metodo, viene creato uno HttpWebRequest
che viene inviato al server. Se tutto va bene, un file XML viene restituito al chiamante. Tuttavia, se questa è la seconda richiesta web in meno di 0,5 s, la richiesta sarà timeout.
Il mio dilemma sta nel modo in cui dovrei gestire il throttling di richiesta (se non del tutto). Ovviamente, non voglio che il chiamante si sieda in attesa di una risposta, specialmente se sono assolutamente certo che la loro richiesta scadrà.
Sarebbe più sensato per la mia libreria mettere in coda e limitare le richieste web che creo, o la mia biblioteca dovrebbe semplicemente lanciare un'eccezione se il client non aspetta abbastanza a lungo tra le chiamate API?
Justin. Il sito web che stai accedendo al tuo o a una terza parte. I miei commenti sul "Buon cittadino" si basavano sul fatto che si trattava di una terza parte, ma altri sembrano aver assunto il proprio sito. – Andiih
Il sito è davvero un sito di terze parti. Grazie per aver sottolineato che non l'avevo specificato. Ho aggiornato la mia domanda per chiarire. –