Anuloni një kërkesë .NET HttpClient përmes një proxy me një token afati
Anuloni vetë operacionin e rrjetit kur skadon afati i proxy-t, në vend që të kufizoni vetëm pritjen e thirrësit.
Kalo afatin te operacioni që mund të anulojë punën e rrjetit. Për një .NET HttpClient ekzistues të konfiguruar përmes proxy-t:
using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
using var response = await client.GetAsync(uri, deadline.Token);Aplikacioni ofron client dhe uri. Ky mbingarkesë merr tokenin e anulimit; një afat rreth pritjes për detyrën e tij do të kufizonte vetëm pritjen e atij thirrësi. Sondimi i një flamuri përfundimi ka të njëjtin problem: thirrësi mund të largohet ndërsa sockets dhe punëtorët mbeten të zënë.
Anulimi ndjek implementimin e klientit dhe rrugën e pastrimit. Ai nuk premton që çdo veprim i nivelit më të ulët ndalon në një udhëzim të saktë. Lëreni atë rrugë të përfundojë dhe lironi burimet që zotëron operacioni. Përfshini në dizajn leximin e trupit të kontrolluar veçmas; për një operacion modern .NET ResponseHeadersRead, kaloni të njëjtin token përmes leximit të trupit. Klientët e tjerë ofrojnë ndërfaqet e tyre të anulimit, ndalimit dhe pastrimit.
Një provë e re kërkon një rezultat për provën e mëparshme. Ruani identifikuesin dhe proxy-n e zgjedhur, kërkoni anulim kur është e nevojshme dhe shmangni humbjen e detyrës ndërsa nisni zëvendësues pa fund. Përndryshe një pikë fundore e ngadaltë mund të grumbullojë punë më shpejt sesa e lëshon aplikacioni.
Rezultati i largët kërkon trajtim të veçantë. Mund të ketë marrë tashmë një dërgim destinacioni kur ndodh anulimi. Përdorni politikën e rikuperimit ose idempotencës së aplikacionit; ndalimi i punës lokale nuk zhbën një veprim të largët.