डेडलाइन त्यो कार्यलाई दिनुहोस् जसले नेटवर्क काम रद्द गर्न सक्छ। प्रोक्सीमार्फत कन्फिगर गरिएको विद्यमान .NET HttpClient का लागि:

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

एप्लिकेसनले client र uri दिन्छ। यो ओभरलोडले रद्द गर्ने टोकन लिन्छ; यसको कार्यको पर्खाइवरिपरिको टाइमआउटले त्यो कलरको पर्खाइ मात्र सीमित गर्छ। पूर्णता झन्डा पोल गर्नमा पनि त्यही समस्या छ: सकेट र वर्कर व्यस्त रहँदा कलर जान सक्छ।

रद्द गर्ने कार्यले क्लाइन्टको कार्यान्वयन र सफाइ मार्ग पछ्याउँछ। यसले हरेक तल्लो तहको कार्य ठ्याक्कै निर्देशनमा रोकिन्छ भनी वाचा गर्दैन। त्यो मार्ग पूरा हुन दिनुहोस् र कार्यले स्वामित्व लिएका स्रोतहरू मुक्त गर्नुहोस्। डिजाइनमा अलगै नियन्त्रित बडी पढाइ समावेश गर्नुहोस्; आधुनिक .NET ResponseHeadersRead कार्यका लागि, त्यही टोकन बडी पढाइबाट पठाउनुहोस्। अन्य क्लाइन्टहरूले आफ्नै रद्द, रोक्ने र सफा गर्ने इन्टरफेस दिन्छन्।

पुनः प्रयासका लागि अघिल्लो प्रयासको नतिजा चाहिन्छ। यसको पहिचान र छानिएको प्रोक्सी राख्नुहोस्, आवश्यक पर्दा रद्द गर्न अनुरोध गर्नुहोस् र विकल्पहरू अनिश्चितकालसम्म सुरु गर्दै कार्य गुमाउनबाट बच्नुहोस्। नत्र ढिलो एन्डपोइन्टले एप्लिकेसनले मुक्त गरेभन्दा छिटो काम जम्मा गर्न सक्छ।

टाढाको नतिजाका लागि अलग व्यवस्थापन चाहिन्छ। रद्द हुँदा गन्तव्यले पहिले नै पेस गरिसकेको हुन सक्छ। एप्लिकेसनको रिकभरी वा idempotency नीति प्रयोग गर्नुहोस्; स्थानीय काम रोक्दा टाढाको कार्य रद्द हुँदैन।

सम्बन्धित लेखहरू