.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 پالیسی استعمال کریں؛ مقامی کام روکنے سے دور کا عمل واپس نہیں ہوتا۔