ការជ្រើសរើសប្រូកស៊ី round-robin ក្នុង Python ជាមួយ itertools.cycle
ប្រើអ្នកធ្វើម្តងទៀតដើម្បីជ្រើសរើសប្រូកស៊ីដែលអាចទាយទុកជាមុនពីស្រះថេរ ដោយរក្សាការជ្រើសរើសដាច់ដោយឡែកពីការប្រតិបត្តិសំណើ និងសុខភាព។
សម្រាប់ស្រះថេរ ការជ្រើសរើស 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)) ទោះបីជាការដកចេញពីខាងមុខធ្វើឱ្យធាតុបញ្ជីនៅសល់ផ្លាស់ទីក៏ដោយ។
អ្នកធ្វើម្តងទៀតមានការងារមានកម្រិតដោយចេតនា។ វាមិនពិនិត្យភាពអាចប្រើបាន មិនដកធាតុដែលបរាជ័យ ហើយមិនធានាច្រកចេញសាធារណៈផ្សេង។ ចំណុចបញ្ចប់ជាច្រើនអាចចែករំលែកអាសយដ្ឋានខាងក្រៅតែមួយ។
រក្សាគោលនយោបាយព្យាយាមឡើងវិញ និងការធ្វើបច្ចុប្បន្នភាពស្រះនៅក្រៅអ្នកជ្រើសរើសតូចនេះ។ អ្នកធ្វើម្តងទៀតដែលចែករំលែកក៏ត្រូវការគំរូកម្មសិទ្ធិដោយចេតនានៅក្នុងកូដស្របគ្នា ដើម្បីឱ្យចំណុចបញ្ចប់ដែលបានជ្រើសនៅជាប់នឹងប្រតិបត្តិការដែលបានទទួលវា។