HTTP ଅନୁରୋଧ ଚାଲୁଥିବା ସମୟରେ ଷ୍ଟପୱାଚ ଅପେକ୍ଷା ବନ୍ଦ କରିପାରେ। ପ୍ରକ୍ସି ପ୍ରୟାସର ନିର୍ଦ୍ଦିଷ୍ଟ ସମୟ ବଜେଟ ଥିଲେ କାର୍ଯ୍ୟକୁ ହିଁ ବାତିଲ କରିବାର ସୁବିଧା ଦିଅନ୍ତୁ।

ପୂର୍ବରୁ ପ୍ରକ୍ସି ଦ୍ୱାରା କନଫିଗର ହୋଇଥିବା HttpClient ଥିବା ଆଧୁନିକ .NET ଆପ୍ଲିକେସନ ପାଇଁ:

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);

ସେହି ବଜେଟ ପ୍ରସ୍ତୁତି ପୂର୍ବରୁ ଆରମ୍ଭ ହୁଏ ଏବଂ ବଡି ପଢ଼ିବା ସମୟରେ ସକ୍ରିୟ ରହେ। ResponseHeadersRead ହେଡର ପରେ ନିୟନ୍ତ୍ରଣ ଫେରାଏ, ତେଣୁ HttpClient ର ନିଜସ୍ୱ ସମୟସୀମା ପରବର୍ତ୍ତୀ ବଡି ପଠନ ବଜେଟକୁ ଏକାକୀ ନିର୍ଣ୍ଣୟ କରେ ନାହିଁ।

ବାତିଲକୁ HTTP ସ୍ଥିତି ଓ ପରିବହନ ତ୍ରୁଟିରୁ ଅଲଗା ରଖନ୍ତୁ। OperationCanceledException ଦିଆଯାଇଥିବା ଟୋକନ କିମ୍ବା ଅନ୍ୟ କନଫିଗର ସମୟସୀମାରୁ ଆସିପାରେ; ପ୍ରତ୍ୟେକ ବିଫଳତାକୁ ମୃତ ପ୍ରକ୍ସି ନକହି ସମ୍ପୃକ୍ତ ବାତିଲ ଉତ୍ସ ଯାଞ୍ଚ କରନ୍ତୁ।

ଏହି ପ୍ରକ୍ସି ମାର୍ଗର ମାଲିକ କ୍ଲାଏଣ୍ଟକୁ ପୁନଃ ବ୍ୟବହାର କରନ୍ତୁ। ଗୋଟିଏ ପ୍ରୟାସ ବାତିଲ କରିବା ଅର୍ଥ ପ୍ରତ୍ୟେକ ପରବର୍ତ୍ତୀ ଅନୁରୋଧ ପାଇଁ ସମ୍ପୂର୍ଣ୍ଣ ସଂଯୋଗ ପୁଲ ପୁନର୍ନିର୍ମାଣ ନୁହେଁ।

ଉଦାହରଣ ସୀମିତ ଆକାରର ପ୍ରତିକ୍ରିୟା ବଡି ବଫର କରେ। ଷ୍ଟ୍ରିମିଂ ଡାଉନଲୋଡରେ ଟୋକନକୁ ଷ୍ଟ୍ରିମ-କପି ଲୁପ ମଧ୍ୟରେ ପଠାଇ ପ୍ରତ୍ୟେକ ବାହାର ପଥରେ ପ୍ରତିକ୍ରିୟା ମୁକ୍ତ କରନ୍ତୁ।

ବାତିଲ ଏକ କାର୍ଯ୍ୟ ନୀତି ପ୍ରକାଶ କରେ, ପ୍ରତ୍ୟେକ ପ୍ଲାଟଫର୍ମ କାର୍ଯ୍ୟ ପାଇଁ ସଠିକ ଘଡ଼ି ପ୍ରତିଶ୍ରୁତି ନୁହେଁ। Task.IsCompleted ଉପରେ ଅସୀମ ପୋଲିଂ ଲୁପ ରଖି ଏହାକୁ ବଦଳାନ୍ତୁ ନାହିଁ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ