ડેડલાઇન ટોકન સાથે પ્રોક્સી દ્વારા જતી .NET HttpClient વિનંતી રદ કરો
ફક્ત કૉલરની રાહ સમાપ્ત કરવાને બદલે પ્રોક્સી ડેડલાઇન પૂરી થાય ત્યારે નેટવર્ક ક્રિયા જ રદ કરો.
ડેડલાઇનને એ ક્રિયાને આપો જે નેટવર્ક કામ રદ કરી શકે. પ્રોક્સી દ્વારા ગોઠવેલી હાલની .NET HttpClient માટે:
using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
using var response = await client.GetAsync(uri, deadline.Token);એપ્લિકેશન client અને uri પૂરા પાડે છે. આ ઓવરલોડ રદ કરવાનું ટોકન મેળવે છે; તેના ટાસ્કની રાહ ફરતેનો ટાઇમઆઉટ ફક્ત તે કૉલરની રાહ મર્યાદિત કરશે. પૂર્ણતા ફ્લેગ પોલ કરવાની પણ એ જ સમસ્યા છે: સૉકેટ અને વર્કર વ્યસ્ત રહે ત્યારે કૉલર જઈ શકે છે.
રદ કરવું ક્લાયન્ટના અમલીકરણ અને સફાઈ માર્ગને અનુસરે છે. તે વચન આપતું નથી કે દરેક નીચલી ક્રિયા ચોક્કસ સૂચનાએ અટકશે. તે માર્ગ પૂરો થવા દો અને ક્રિયા જે સંસાધનો ધરાવે છે તે મુક્ત કરો. ડિઝાઇનમાં અલગથી નિયંત્રિત બોડી વાંચન સામેલ કરો; આધુનિક .NET ResponseHeadersRead ક્રિયા માટે, એ જ ટોકન બોડી વાંચનમાંથી પસાર કરો. અન્ય ક્લાયન્ટ પોતાના રદ, અટકાવ અને સફાઈ ઇન્ટરફેસ પૂરા પાડે છે.
ફરી પ્રયાસ માટે પાછલા પ્રયાસનું પરિણામ જોઈએ. તેની ઓળખ અને પસંદ કરેલી પ્રોક્સી રાખો, જરૂર પડે ત્યારે રદ કરવાની વિનંતી કરો અને અવિરત વિકલ્પો શરૂ કરતી વખતે ટાસ્ક ગુમાવવાનું ટાળો. નહિંતર ધીમો એન્ડપોઇન્ટ એપ્લિકેશન જેટલું કામ મુક્ત કરે તેનાથી ઝડપથી કામ એકઠું કરી શકે છે.
દૂરસ્થ પરિણામ માટે અલગ સંભાળ જરૂરી છે. રદ થાય ત્યારે ગંતવ્યને પહેલેથી સબમિશન મળી ગયું હોઈ શકે. એપ્લિકેશનની પુનઃપ્રાપ્તિ અથવા idempotency નીતિ વાપરો; સ્થાનિક કામ રોકવાથી દૂરસ્થ ક્રિયા રદ થતી નથી.