ಸ್ಥಿರ ಪೂಲ್‌ಗಾಗಿ 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)), ಆದರೂ ಮುಂಭಾಗದಿಂದ ತೆಗೆದರೆ ಉಳಿದ ಪಟ್ಟಿ ಅಂಶಗಳು ಸರಿಯುತ್ತವೆ.

ಪುನರಾವರ್ತಕಕ್ಕೆ ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಸಾಧಾರಣ ಕೆಲಸವಿದೆ. ಅದು ಲಭ್ಯತೆಯನ್ನು ಪರಿಶೀಲಿಸುವುದಿಲ್ಲ, ವಿಫಲ ನಮೂದುಗಳನ್ನು ತೆಗೆಯುವುದಿಲ್ಲ ಅಥವಾ ಬೇರೆ ಸಾರ್ವಜನಿಕ ನಿರ್ಗಮನವನ್ನು ಖಾತರಿಪಡಿಸುವುದಿಲ್ಲ. ಹಲವು ಎಂಡ್‌ಪಾಯಿಂಟ್‌ಗಳು ಒಂದೇ ಹೊರಗಿನ ವಿಳಾಸವನ್ನು ಹಂಚಿಕೊಳ್ಳಬಹುದು.

ಮರುಪ್ರಯತ್ನ ನೀತಿ ಮತ್ತು ಪೂಲ್ ನವೀಕರಣಗಳನ್ನು ಈ ಸಣ್ಣ ಆಯ್ಕೆಕಾರನಿಂದ ಹೊರಗೆ ಇರಿಸಿ. ಹಂಚಿಕೊಂಡ ಪುನರಾವರ್ತಕಕ್ಕೆ ಸಮಕಾಲೀನ ಕೋಡ್‌ನಲ್ಲಿ ಉದ್ದೇಶಪೂರ್ವಕ ಮಾಲೀಕತ್ವ ಮಾದರಿ ಕೂಡ ಬೇಕು, ಇದರಿಂದ ಆಯ್ಕೆ ಮಾಡಿದ ಎಂಡ್‌ಪಾಯಿಂಟ್ ಅದನ್ನು ಸ್ವೀಕರಿಸಿದ ಕಾರ್ಯಾಚರಣೆಗೆ ಲಗತ್ತಾಗಿರುತ್ತದೆ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು