प्रॉक्सी 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 आयात केले आहे आणि एंडपॉइंटची यादी आधीच पडताळली आहे. सार्वजनिक पूल विनामूल्य प्रॉक्सी यादीपासून सुरू होऊ शकतो जेव्हा त्याचे प्रोटोकॉल अंतिम क्लायंटला अनुरूप असतात; हा निवडीचा नियम अजूनही पुनरावृत्ती नियंत्रित करतो. थांबणे, एकमेव एंडपॉइंट पुन्हा वापरणे किंवा थांबवणे हे अनुप्रयोगाचे धोरण आहे. वेगळ्या यादृच्छिक मूल्याची वाट पाहणारा अंतहीन लूप केवळ एकच वेगळा पर्याय असलेली यादी सोडवू शकत नाही.

समवर्ती डिस्पॅचरमध्ये, मागील एंडपॉइंट निवडणे आणि नोंदवणे यासाठीही समन्वित मालकी आवश्यक आहे. अन्यथा दोन कर्मचारी दोघेही जुने मूल्य वगळून तेच पुढील मूल्य निवडू शकतात.

शेवटी, हा नियम एंडपॉइंटच्या ओळखीशी संबंधित आहे. दोन वेगळे एंडपॉइंट एकाच सार्वजनिक एक्झिटकडे नेऊ शकतात, आणि एक प्रदाता एंडपॉइंट अनेक एक्झिटकडे नेऊ शकतो. रोटेशन बिघडले आहे असे ठरवण्यापूर्वी ते वेगळे नोंदवा.

संबंधित लेख