Menu
Coddy logo textTech

זמני המתנה וניסיונות חוזרים

שיעור 45 מתוך 47 בקורס עבודה עם רשתות דרך הטרמינל של Coddy.

כברירת מחדל, curl ממתין זמן רב מאוד. בסקריפט זו תקלה: מארח אחד שאינו נגיש, והמשימה שלך נתקעת עד שמישהו שם לב.

curl -s --max-time 5 --connect-timeout 2 URL

--connect-timeout מגביל את משך הזמן המוקדש ליצירת החיבור. --max-time מגביל את משך הפעולה כולה. חריגה מכל אחד מהם מחזירה קוד יציאה 28.

ניסיונות חוזרים דורשים יותר זהירות מכפי שנדמה. בטוח לחזור על בקשת GET או PUT שנכשלה, משום ששתיהן אידמפוטנטיות. חזרה על בקשת POST עלולה ליצור רשומה שנייה, ופסק זמן הוא המקרה הגרוע ביותר עבורה: לא תדע אם הבקשה הראשונה עובדה.

לכן אפשר לנסות שוב בקשות קריאה בחופשיות, ולחשוב לפני שמנסים שוב פעולות כתיבה. כשאין ברירה, בקש מהשרת דרך להפוך את הפעולה לבטוחה, למשל באמצעות מפתח אידמפוטנטיות.

challenge icon

אתגר

בינוני

הגבילו את משך הזמן של בקשה שלעולם לא תיענה.

שלחו בקשה לכתובת http://10.255.255.1/, כתובת שבולעת תעבורה בשקט, וותרו לאחר 2 שניות, והדפיסו gave up: ואחריו את קוד היציאה של curl.

הפלט הצפוי:

gave up: 28

בלי הגבלת זמן, הבקשה הייתה נתקעת במשך הרבה יותר מדקה.

נסו בעצמכם

טרמינל
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה עבודה עם רשתות דרך הטרמינל

תרגלו בעצמכם: Terminal אונליין