หยุดลูปการหมุนพร็อกซีไม่ให้ทำงานตลอดไป
ให้พูลพร็อกซี Python มีงบประมาณการลองที่จำกัด และแยกความล้มเหลวของการเชื่อมต่อออกจากการตอบกลับจากปลายทาง
พูลพร็อกซีอาจเปลี่ยนการล่มครั้งเดียวให้กลายเป็นลูปที่ทำงานไม่หยุด เลือกที่อยู่ ล้มเหลว เลือกอีกที่หนึ่ง ล้มเหลวอีกครั้ง หาก ทุกปลายทางเข้าถึงไม่ได้ เพราะเครือข่ายของคุณเองล่ม การเปลี่ยนที่อยู่ก็ไม่เคยแก้ต้นเหตุ
กำหนดงบประมาณให้กับการทำงานก่อนเลือกพร็อกซีตัวแรกจากพูลหรือรายการพร็อกซีฟรี: จำนวนครั้งที่ลองจำกัด เวลารอเชื่อมต่อและเวลารออ่านที่จำกัด และกำหนดเวลาสิ้นสุดของงานทั้งหมด Requests timeout ควบคุมพฤติกรรมการเชื่อมต่อหรือการอ่านตามที่เอกสารระบุ มันไม่ได้จำกัดลูปที่ยังคงส่งคำขอใหม่ด้วยตัวเอง
ตัดสินว่าอะไรควรค่าแก่การลองอีกครั้ง
- การเชื่อมต่อพร็อกซีถูกปฏิเสธอาจเป็นเหตุผลให้ลองปลายทางอื่น
- การตอบกลับจากปลายทางต้องตีความแยกต่างหาก การได้รับข้อผิดพลาด HTTP พิสูจน์ว่าเส้นทางคำขอบางส่วนทำงานเสร็จแล้ว
- ความล้มเหลวในการยืนยันตัวตนพร็อกซีควรตรวจสอบปลายทางและบัญชี แทนการยิงข้อมูลรับรองเดิมซ้ำผ่านรายการที่ยาวขึ้น
เก็บข้อยกเว้นหรือสถานะดั้งเดิมไว้กับบันทึกการลอง ข้อความสุดท้ายที่มีเพียง “พร็อกซีทั้งหมดล้มเหลว” ปิดบังว่าความล้มเหลวมีสาเหตุเดียวกันหรือไม่
การตรวจสุขภาพพร็อกซีแต่ละตัวก่อนทุกคำขอจริงเพิ่มคำขออีกหนึ่งครั้งและยังรับประกันไม่ได้ว่าครั้งถัดไปจะสำเร็จ ใช้ข้อมูลสุขภาพล่าสุดซ้ำเมื่อเหมาะกับงาน แล้วปล่อยให้การทำงานจริงรายงานผลของตัวเอง
การลองใหม่สามารถทำงานซ้ำได้
สำหรับการดึงข้อมูลแบบอ่านอย่างเดียว การย้ายไปพร็อกซีอื่นมักง่ายกว่าการเล่นการส่งซ้ำ หากการเชื่อมต่อขาดหลังส่งการซื้อหรือแบบฟอร์ม ปลายทางอาจประมวลผลไปแล้ว ปฏิบัติตามกลไก idempotency ของบริการและกฎการลองใหม่ของ HTTP ก่อนเล่นงานซ้ำ
เมื่องบประมาณหมด ให้คืนความล้มเหลวที่มีประโยชน์ งานที่หยุดพร้อมหลักฐานซ่อมง่ายกว่างานที่หมุนเงียบ ๆ ต่อไปจนมีคนสังเกต