פסקי זמן לפי שלב והמועד הסופי הכולל של בקשת פרוקסי
הפרידו בין מגבלות לפי שלב לבין תקציב הזמן הכולל של פעולה דרך פרוקסי, כולל ניסיונות חוזרים וצריכת התגובה.
פסקי זמן לחיבור ולקריאה מגבילים המתנות מסוימות. הם אינם בהכרח מגבילים פעולה שלמה דרך פרוקסי, שעשויה לכלול גם המתנה בתור, DNS, CONNECT, TLS, הפניות מחדש, ניסיונות חוזרים וצריכת התגובה.
| מגבלה | היקף |
|---|---|
| פסק זמן לחיבור | הקמת החיבור לפי הגדרת הלקוח |
| פסק זמן לחוסר פעילות בקריאה | המתנה בלי התקדמות הנתונים הצפויה |
| מועד סופי כולל | המשך הזמן המותר של הפעולה השלמה |
התחילו בתקציב הזמן של הפעולה
השתמשו במועד הסופי הכולל המתועד של הלקוח או במנגנון הביטול כאשר הוא קיים, לצד מגבלות השלבים. HTTPX מפריד בין המתנות של מאגר, חיבור, קריאה וכתיבה. Requests מציין שפסק הזמן שלו אינו מגבלה של הורדה שלמה. curl מספק פסק זמן כולל להעברה.
לדוגמה, מטלה של עשרים שניות מבלה שתי שניות בתור, שלוש בהקמת המסלול שלה ושש בחילוף שלא הצליח. לניסיון הבא שלה נותרות כעשר שניות בקירוב. מתן עשרים שניות חדשות לכל ניסיון חוזר היה משליך את התקציב המקורי.
השתמשו בשעון מונוטוני לחישוב הזמן שחלף. העבירו מועד סופי מוחלט או משך זמן שנותר דרך השכבות שבעלות העבודה. אם מנגנון הביטול שמסביב אינו יכול לאכוף את ההיקף הנדרש, הצהירו על המגבלה הזו במפורש.
כללו את הגוף ואת הניקוי
שיטה שחוזרת לאחר הכותרות עלולה להשאיר את קריאת הגוף מחוץ למועד שלה. החליטו אם התקציב מכסה את ההקמה, הורדה סופית שלמה או זרם ארוך עם כללי חיים נפרדים. דוגמה מודרנית ב-.NET לביטול כותרות וגוף נושאת אסימון אחד דרך שני השלבים.
השאירו זמן לסגירת תגובות ולהשלמת הביטול לפני שניסיון נוסף יתפוס קיבולת של המאגר. תעדו את השלב שנכשל ואת הזמן שחלף; קריאות חוזרות שמתקדמות עשויות לספק את מגבלות חוסר הפעילות בזמן שהמטלה הכוללת נמשכת יותר מדי.
המועד הסופי של שער כלפי המעלה שייך לאותו שער. לאחר שהוא מחזיר 504, תקציב לקוח שלא נוצל אינו יכול להאריך את הניסיון שהושלם. החזיקו כל טיימר צמוד לבעליו כשאתם מחליטים איזו הגדרה יש לתקן.