Saa ya kupimia inaweza kuacha kusubiri wakati ombi la HTTP linaendelea. Toa ughairi kwa operesheni yenyewe wakati jaribio la proksi lina bajeti ya muda iliyokusudiwa.

Kwa programu ya .NET ya kisasa iliyo na HttpClient iliyowekwa kwa proksi tayari:

using var budget = new CancellationTokenSource(TimeSpan.FromSeconds(5));
using var response = await client.GetAsync(
    targetUrl,
    HttpCompletionOption.ResponseHeadersRead,
    budget.Token);
response.EnsureSuccessStatusCode();
string body = await response.Content.ReadAsStringAsync(budget.Token);

Bajeti hiyo hiyo huanza kabla ya uandaaji na hubaki hai wakati mwili unasomwa. ResponseHeadersRead hurudisha udhibiti baada ya vichwa, hivyo muda wa mwisho wa HttpClient wenyewe hautengenezi bajeti ya usomaji wa mwili unaofuata.

Tenganisha ughairi na hali ya HTTP na makosa ya usafirishaji. OperationCanceledException inaweza kutoka kwa token iliyotolewa au muda mwingine wa mwisho uliowekwa; chunguza chanzo husika cha ughairi badala ya kutangaza kila kushindwa kama proksi iliyokufa.

Tumia tena mteja anayemiliki njia hii ya proksi. Kughairi jaribio moja hakumaanishi kujenga upya bwawa lote la miunganisho kwa kila ombi linalofuata.

Mfano huhifadhi mwili wa jibu wenye ukubwa maalum. Upakuaji wa mtiririko unapaswa kupitisha token kwenye mzunguko wa kunakili mtiririko na kuachilia jibu katika kila njia ya kutoka.

Ughairi huonyesha sera ya operesheni, si ahadi kamili ya saa kwa kila tendo la jukwaa. Usiubadilishe na mzunguko usio na mwisho wa kuuliza kuhusu Task.IsCompleted.

Makala zinazohusiana