स्थिर पूलका लागि round-robin छनोट रमाइलो रूपमा छोटो हुन सक्छ:

from itertools import cycle

choices = cycle([
    "http://proxy-a.example:8080",
    "http://proxy-b.example:8080",
    "http://proxy-c.example:8080",
])

endpoint = next(choices)

नमुना URL हरूलाई तपाईंको सेवा वा HTTP प्रोक्सी सूचीबाट HTTP अन्त्य बिन्दुहरूले प्रतिस्थापन गर्नुहोस्। क्रमिक कलहरूले A, B, C र त्यसपछि फेरि A फर्काउँछन्। अर्को अनुरोध कन्फिगर गर्दा छानिएको मान प्रयोग गर्नुहोस्। हरेक अनुरोधका लागि इटरेटर फेरि बनाउँदा क्रम फेरि सुरु हुन्छ। Requests का लागि, छानिएको अन्त्य बिन्दु अनुरोधमा पठाउनुहोस्.

यदि तपाईंलाई सूची मन पर्छ भने, यसको पहिलो वस्तु अन्त्यमा सार्नुहोस्। pool.append(pool.pop()) ले अन्तिम वस्तु हटाएर तुरुन्तै फर्काउँछ; पहिलो वस्तु कहिल्यै बदलिँदैन। कतारको कार्य pool.append(pool.pop(0)) हो, तर अगाडिबाट हटाउँदा बाँकी सूचीका तत्वहरू सर्छन्।

इटरेटरको काम जानाजानी सीमित छ। यसले उपलब्धता जाँच्दैन, असफल प्रविष्टिहरू हटाउँदैन र फरक सार्वजनिक निकासको ग्यारेन्टी गर्दैन। धेरै अन्त्य बिन्दुहरूले एउटै बाहिरी ठेगाना साझा गर्न सक्छन्।

पुनःप्रयास नीति र पूल अद्यावधिकहरू यो सानो छनोटकर्ताबाहिर राख्नुहोस्। साझा इटरेटरलाई समवर्ती कोडमा जानाजानी स्वामित्व मोडेल पनि चाहिन्छ, ताकि छानिएको अन्त्य बिन्दुले प्राप्त गरेको कार्यसँग जोडिएको रहोस्।

सम्बन्धित लेखहरू