ยกเลิกคำขอ .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 ของแอปพลิเคชัน การหยุดงานภายในไม่ได้ยกเลิกการกระทำระยะไกล