مقررہ پول کے لیے 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)

نمونہ URLs کو اپنی سروس یا HTTP پراکسی فہرست سے HTTP اینڈ پوائنٹس سے بدلیں۔ متواتر کالیں A، B، C اور پھر دوبارہ A واپس کرتی ہیں۔ اگلی درخواست ترتیب دیتے وقت منتخب قدر استعمال کریں۔ ہر درخواست کے لیے اٹیریٹر دوبارہ بنانا ترتیب کو از سرِ نو شروع کر دے گا۔ Requests کے لیے، منتخب اینڈ پوائنٹ درخواست میں دیں۔

اگر آپ فہرست کو ترجیح دیتے ہیں تو اس کی پہلی شے آخر میں منتقل کریں۔ pool.append(pool.pop()) آخری شے ہٹا کر فوراً واپس رکھتا ہے؛ پہلی شے کبھی نہیں بدلتی۔ قطار کی کارروائی pool.append(pool.pop(0)) ہے، تاہم آگے سے ہٹانے پر باقی فہرست عناصر سرک جاتے ہیں۔

اٹیریٹر کا کام دانستہ طور پر محدود ہے۔ یہ دستیابی کی جانچ نہیں کرتا، ناکام اندراجات نہیں ہٹاتا اور مختلف عوامی اخراج کی ضمانت نہیں دیتا۔ کئی اینڈ پوائنٹس ایک ہی بیرونی پتہ شیئر کر سکتے ہیں۔

دوبارہ کوشش کی پالیسی اور پول کی تازہ کاری اس چھوٹے منتخب کنندہ سے باہر رکھیں۔ مشترکہ اٹیریٹر کو ہم وقت کوڈ میں دانستہ ملکیت کا ماڈل بھی درکار ہے تاکہ منتخب اینڈ پوائنٹ اسی کارروائی سے جڑا رہے جس نے اسے حاصل کیا۔

متعلقہ مضامین