זמני המתנה וניסיונות חוזרים
שיעור 45 מתוך 47 בקורס עבודה עם רשתות דרך הטרמינל של Coddy.
כברירת מחדל, curl ממתין זמן רב מאוד. בסקריפט זו תקלה: מארח אחד שאינו נגיש, והמשימה שלך נתקעת עד שמישהו שם לב.
curl -s --max-time 5 --connect-timeout 2 URL--connect-timeout מגביל את משך הזמן המוקדש ליצירת החיבור. --max-time מגביל את משך הפעולה כולה. חריגה מכל אחד מהם מחזירה קוד יציאה 28.
ניסיונות חוזרים דורשים יותר זהירות מכפי שנדמה. בטוח לחזור על בקשת GET או PUT שנכשלה, משום ששתיהן אידמפוטנטיות. חזרה על בקשת POST עלולה ליצור רשומה שנייה, ופסק זמן הוא המקרה הגרוע ביותר עבורה: לא תדע אם הבקשה הראשונה עובדה.
לכן אפשר לנסות שוב בקשות קריאה בחופשיות, ולחשוב לפני שמנסים שוב פעולות כתיבה. כשאין ברירה, בקש מהשרת דרך להפוך את הפעולה לבטוחה, למשל באמצעות מפתח אידמפוטנטיות.
אתגר
בינוניהגבילו את משך הזמן של בקשה שלעולם לא תיענה.
שלחו בקשה לכתובת http://10.255.255.1/, כתובת שבולעת תעבורה בשקט, וותרו לאחר 2 שניות, והדפיסו gave up: ואחריו את קוד היציאה של curl.
הפלט הצפוי:
gave up: 28בלי הגבלת זמן, הבקשה הייתה נתקעת במשך הרבה יותר מדקה.
נסו בעצמכם
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה עבודה עם רשתות דרך הטרמינל
6היכרות מעמיקה עם curl
צפייה בכותרותשמירת תגובותכותרות מותאמות אישיתסטטוס ותזמוןקודי יציאה של curlסיכום: דגלים של curl9אימות וניפוי שגיאות
מפתחות API ו-Bearerסוכן המשתמשזמני המתנה וניסיונות חוזריםקריאת הודעת כשלסיכום: ניפוי שגיאותתרגלו בעצמכם: Terminal אונליין