پروکسی روٹیشن لوپ کو ہمیشہ چلتے رہنے سے روکیں
Python پروکسی پول کو محدود کوششوں کا بجٹ دیں اور کنکشن کی ناکامیوں کو منزل کے جوابات سے الگ کریں۔
پروکسی پول ایک سادہ رکاوٹ کو مصروف لوپ میں بدل سکتا ہے۔ ایک پتہ چنیں، ناکام ہوں، دوسرا چنیں، پھر ناکام ہوں۔ اگر آپ کا اپنا نیٹ ورک بند ہونے کی وجہ سے ہر اینڈ پوائنٹ ناقابل رسائی ہے تو پتے بدلنے سے وجہ کبھی درست نہیں ہوتی۔
اپنے پول یا مفت پروکسی فہرست سے پہلا پروکسی چننے سے پہلے کام کو بجٹ دیں: محدود تعداد میں کوششیں، محدود کنکشن اور پڑھنے کے انتظار، اور پورے کام کی آخری مہلت۔ Requests ٹائم آؤٹ اپنے دستاویزی کنکشن یا پڑھنے کے رویے کو کنٹرول کرتا ہے؛ یہ خود بخود ایسے لوپ کو محدود نہیں کرتا جو نئی درخواستیں جاری رکھے۔
فیصلہ کریں کہ کس چیز کے لیے ایک اور کوشش جائز ہے
- مسترد شدہ پروکسی کنکشن کسی اور اینڈ پوائنٹ کو آزمانے کا جواز بن سکتا ہے۔
- منزل کے جواب کی اپنی تشریح درکار ہے۔ HTTP خرابی ملنا ثابت کرتا ہے کہ درخواست کا کوئی راستہ مکمل ہوا۔
- پروکسی تصدیق کی ناکامی کا مطلب یہ ہے کہ بڑھتی فہرست میں وہی اسناد بار بار آزمایا جانا نہیں، بلکہ اینڈ پوائنٹ اور اکاؤنٹ کی جانچ کی جائے۔
اصل استثنا یا حالت کو کوشش کے ریکارڈ کے ساتھ رکھیں۔ صرف ”تمام پروکسی ناکام ہو گئے“ پر مشتمل آخری پیغام یہ چھپا دیتا ہے کہ ناکامیوں کی وجہ ایک ہی تھی یا نہیں۔
ہر حقیقی درخواست سے پہلے ہر پروکسی کی صحت جانچنا ایک اور درخواست بڑھاتا ہے اور پھر بھی یقین نہیں دلا سکتا کہ اگلی کامیاب ہوگی۔ حالیہ صحت کی معلومات کو وہاں دوبارہ استعمال کریں جہاں وہ کام کے لیے موزوں ہو، پھر اصل کارروائی کو اپنا نتیجہ بتانے دیں۔
دوبارہ کوشش کام کو دہرا سکتی ہے
صرف پڑھنے والی بازیافت کے لیے، کسی اور پروکسی پر جانا عام طور پر جمع کرانے کو دوبارہ چلانے سے آسان ہے۔ اگر خریداری یا فارم جمع کرانے کے بعد کنکشن ٹوٹ جائے تو ممکن ہے منزل اسے پہلے ہی پروسیس کر چکی ہو۔ کام دہرانے سے پہلے سروس کا idempotency طریقہ اور HTTP دوبارہ کوشش کے قواعد پر عمل کریں۔
بجٹ ختم ہونے پر، ایک کارآمد ناکامی واپس کریں۔ ثبوت کے ساتھ رکنے والا کام، خاموشی سے گھومتے رہنے والے کام سے زیادہ آسانی سے ٹھیک ہوتا ہے۔