Proxyn kautta kulkevan .NET HttpClient -pyynnön peruuttaminen määräaikatunnisteella
Peruuta verkkotoimenpide itse, kun proxyn määräaika päättyy, sen sijaan että rajoittaisit vain kutsujan odotusta.
Välitä määräaika toimenpiteelle, joka voi peruuttaa verkkotyön. Olemassa olevalle proxyn kautta määritetylle .NET HttpClient:lle:
using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
using var response = await client.GetAsync(uri, deadline.Token);Sovellus toimittaa client ja uri. Tämä ylikuormitus vastaanottaa peruutustunnisteen; aikakatkaisu sen tehtävän odottamisen ympärillä rajoittaisi vain kyseisen kutsujan odotusta. Valmistumislipun kyselyllä on sama ongelma: kutsuja voi lähteä, kun taas soketit ja työntekijät pysyvät varattuina.
Peruutus noudattaa asiakkaan toteutusta ja siivouspolkua. Se ei lupaa, että jokainen alemman tason toimi pysähtyy täsmällisessä käskyssä. Anna tuon polun päättyä ja vapauta resurssit, jotka toimenpide omistaa. Sisällytä suunnitteluun erikseen ohjattu rungon luku; nykyaikaiselle .NET ResponseHeadersRead -toimenpiteelle välitä sama tunniste rungon luvun läpi. Muut asiakkaat tarjoavat omat peruutus-, keskeytys- ja siivousrajapintansa.
Uusintayritys tarvitsee tuloksen edellisestä yrityksestä. Säilytä sen tunniste ja valittu proxy, pyydä peruutusta tarvittaessa ja vältä tehtävän menettämistä, kun käynnistät korvaavia loputtomasti. Muuten hidas päätepiste voi kerätä työtä nopeammin kuin sovellus vapauttaa sitä.
Etätulos vaatii erillisen käsittelyn. Kohde on saattanut jo vastaanottaa lähetyksen, kun peruutus tapahtuu. Käytä sovelluksen palautumis- tai idempotenssikäytäntöä; paikallisen työn pysäyttäminen ei peru etätoimea.