לעצור לולאת סיבוב פרוקסי מלרוץ לנצח
לתת למאגר פרוקסי בפייתון תקציב ניסיונות סופי ולהבדיל בין כשלי חיבור לבין תגובות היעד.
מאגר פרוקסי יכול להפוך תקלה פשוטה ללולאה עמוסה. בחרו כתובת, כשלו, בחרו אחרת, כשלו שוב. אם כל נקודת קצה אינה נגישה משום שהרשת שלכם נפלה, החלפת כתובות לעולם אינה מתקנת את הסיבה.
תנו לפעולה תקציב לפני בחירת הפרוקסי הראשון מהמאגר או רשימת הפרוקסי החינמית: מספר סופי של ניסיונות, המתנות חיבור וקריאה חסומות, ומועד אחרון למשימה כולה. ה-timeout של Requests שולט בהתנהגות החיבור או הקריאה המתועדת שלו; הוא לבדו אינו מגביל לולאה שממשיכה לשלוח בקשות חדשות.
להחליט מה מזכה ניסיון נוסף
- חיבור פרוקסי שנדחה יכול להצדיק ניסיון בנקודת קצה אחרת.
- תגובת יעד דורשת פרשנות משלה. קבלת שגיאת HTTP מוכיחה שמסלול בקשה כלשהו הושלם.
- כשל אימות פרוקסי מחייב בדיקת נקודת הקצה והחשבון ולא הלמה של אותם פרטי גישה דרך רשימה גדלה.
שמרו את החריגה או הסטטוס המקוריים עם רשומת הניסיון. הודעה סופית שמכילה רק „כל הפרוקסים נכשלו” מסתירה אם לכשלים היה בכלל אותו גורם.
בדיקת תקינות של כל פרוקסי לפני כל בקשה אמיתית מוסיפה בקשה נוספת ועדיין אינה מבטיחה שהבאה תצליח. השתמשו מחדש במידע תקינות עדכני כשהוא מתאים למשימה, והניחו לפעולה האמיתית לדווח על התוצאה שלה.
ניסיון חוזר יכול לחזור על העבודה
שליפה לקריאה בלבד, מעבר לפרוקסי אחר הוא בדרך כלל פשוט יותר מאשר לשלוח שוב טופס. אם חיבור נופל לאחר שליחת רכישה או טופס, ייתכן שהיעד כבר עיבד אותו. פעלו לפי מנגנון ה-idempotency של השירות וכללי הניסיון החוזר של HTTP לפני חזרה על העבודה.
כשהתקציב נגמר, החזירו כשל שימושי. משימה שעוצרת עם ראיות קלה יותר לתיקון מזו שממשיכה להסתובב בשקט עד שמישהו מבחין.