Sendu frestinn til aðgerðarinnar sem getur hætt við netvinnuna. Fyrir núverandi .NET HttpClient sem er stillt í gegnum proxy:

using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
using var response = await client.GetAsync(uri, deadline.Token);

Forritið útvegar client og uri. Þessi ofhleðsla tekur við hættunartákninu; tímamörk utan um bið eftir verkinu myndu aðeins takmarka bið þessa kallanda. Að fylgjast með lokamerkisflaggi hefur sama vandamál: kallandinn getur farið á meðan tengingar og vinnuþræðir eru enn uppteknir.

Hættun fylgir framkvæmd biðlarans og hreinsunarferlinu. Hún lofar því ekki að hver aðgerð á lægra stigi stöðvist við nákvæma skipun. Leyfðu því ferli að ljúka og losaðu auðlindirnar sem aðgerðin á. Láttu stýrða lestur á líkamanum fylgja með í hönnuninni; fyrir nútíma .NET ResponseHeadersRead-aðgerð skaltu senda sama tákn í gegnum lestur líkamans. Aðrir biðlarar bjóða eigin viðmót fyrir hættun, stöðvun og hreinsun.

Endurtaka þarf niðurstöðu fyrir fyrri tilraun. Geymdu auðkenni hennar og valda proxýið, biddu um hættun þegar þörf krefur og forðastu að missa verkið á meðan þú ræsir staðgengla endalaust. Annars getur hægur endapunktur safnað vinnu hraðar en forritið losar hana.

Fjarniðurstaðan þarf sérstaka meðferð. Áfangastaðurinn gæti þegar hafa móttekið sendingu þegar hættun á sér stað. Notaðu endurheimtar- eða idempotency-stefnu forritsins; að stöðva staðbundið verk afturkallar ekki fjaraðgerð.

Tengdir greinar