การเลือกแบบสุ่ม การวนซ้ำแบบสลับ และปลายทางพร็อกซีที่ซ้ำกัน
เลือกระหว่างการเลือกแบบสุ่มที่เป็นอิสระ การวนซ้ำแบบสลับ และนโยบายที่ไม่ซ้ำทันที แทนที่จะมองว่าปลายทางที่ซ้ำกันเป็นตัวหมุนที่เสีย
พร็อกซี B พร็อกซี B อีกครั้ง แล้วก็พร็อกซี A บันทึกของคุณดูน่าสงสัย แต่ตัวเลือกแบบสุ่มได้รับอนุญาตให้ทำเช่นนั้นได้
การเลือกจากรายการเดียวกันในทุกคำขออนุญาตให้เกิดการซ้ำได้ หากมีปลายทางสองอันที่มีโอกาสเท่ากัน การเลือกแบบอิสระครั้งถัดไปมีโอกาสหนึ่งในสองที่จะตรงกับครั้งก่อนหน้า ลำดับสั้นๆ ที่มีการซ้ำไม่ใช่หลักฐานว่าตัวเลือกเพิกเฉยต่อรายการ
เลือกพฤติกรรมที่คุณต้องการจริงๆ
| ข้อกำหนด | กฎการเลือก |
|---|---|
| ทุกการเลือกเป็นอิสระ | เลือกจากรายการที่เหมาะสมทุกครั้ง |
| ใช้แต่ละปลายทางหนึ่งครั้งก่อนเริ่มใหม่ | สลับสำเนาหนึ่งชุด ใช้ให้หมด แล้วเริ่มรอบใหม่ |
| หลีกเลี่ยงปลายทางก่อนหน้าทันที | ตัดปลายทางนั้นออกก่อนเลือก |
สำหรับนโยบายสุดท้าย จัดการกรณีปลายทางเดียวอย่างชัดเจน:
candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)
ส่วนนี้ถือว่า random ถูกนำเข้าแล้วและรายการปลายทางได้รับการตรวจสอบแล้ว สระสาธารณะสามารถเริ่มด้วยรายการพร็อกซีฟรีเมื่อโปรโตคอลเข้ากับไคลเอนต์ปลายทาง กฎการเลือกนี้ยังคงควบคุมการซ้ำ การรอ การใช้ปลายทางเดียวซ้ำ หรือการหยุดเป็นนโยบายของแอปพลิเคชัน ลูปไม่สิ้นสุดที่รอค่าสุ่มอื่นไม่สามารถแก้รายการที่มีเพียงตัวเลือกเดียวที่แตกต่างได้
ในตัวจัดส่งแบบพร้อมกัน การเลือกและบันทึกปลายทางก่อนหน้ายังต้องมีการเป็นเจ้าของที่ประสานกัน มิฉะนั้นผู้ปฏิบัติงานสองคนอาจตัดค่าเก่าออกทั้งคู่และเลือกค่าเดียวกันถัดไป
สุดท้าย กฎนี้เกี่ยวกับอัตลักษณ์ของปลายทาง ปลายทางสองอันที่แตกต่างกันอาจนำไปสู่ทางออกสาธารณะเดียว และปลายทางของผู้ให้บริการหนึ่งรายอาจนำไปสู่ทางออกหลายทาง บันทึกแยกกันก่อนตัดสินว่าการหมุนเสีย