In .NET HttpClient-fersyk fia in proxy annulearje mei in deadline-token
Annulearje de netwurkoperaasje sels as in proxy-deadline ferrint, ynstee fan allinnich it wachtsjen fan de oanropper te beheinen.
Jou de deadline troch oan de operaasje dy't it netwurkwurk annulearje kin. Foar in besteande .NET HttpClient konfigurearre fia in proxy:
using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
using var response = await client.GetAsync(uri, deadline.Token);De applikaasje leveret client en uri. Dizze oerbelesting ûntfangt it annulaasjetoken; in timeout om it wachtsjen op syn taak soe allinnich it wachtsjen fan dy oanropper beheine. It polljen fan in foltôgingsflagge hat itselde probleem: de oanropper kin fuortgean wylst sockets en wurkers beset bliuwe.
Annulaasje folget de ymplemintaasje en it skjinmaakpaad fan de kliïnt. It belooft net dat elke legere aksje by in krekte ynstruksje stopt. Lit dat paad einigje en meitsje de boarnen frij dy't de operaasje hat. Nim apart regele lichemslêzen op yn it ûntwerp; foar in moderne .NET ResponseHeadersRead-operaasje jou itselde token troch it lichemslêzen. Oare kliïnten leverje har eigen annulaasje-, ôfbrek- en skjinmaakynterfaces.
In nije poging hat in útkomst foar de foarige poging nedich. Bewarje syn identifikaasje en de keazen proxy, freegje annulaasje oan as dat nedich is en foarkom dat de taak ferlern giet wylst ferfangers einleas starte. Oars kin in stadich einpunt wurk rapper opheapje as de applikaasje it frijlit.
De ôfstânsútkomst freget aparte ôfhanneling. De bestimming hat miskien al in yntsjinjen ûntfongen as de annulaasje bart. Brûk it herstel- of idempotinsjebelied fan de applikaasje; lokaal wurk stilhâlde makket in ôfstânsaksje net ûngedien.