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.

Artikuj të ngjashëm