Menu
CoddyTech

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

שיעור 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 אונליין