Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

المهلات وإعادة المحاولة

الدرس 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/، وهو عنوان يبتلع حركة المرور بصمت، واستسلم بعد ثانيتين، واطبع gave up: متبوعًا برمز خروج curl.

الناتج المتوقع:

gave up: 28

من دون مهلة زمنية، سيظل هذا الطلب معلّقًا لأكثر من دقيقة بكثير.

جرّب بنفسك

الطرفية
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس التعامل مع الشبكات عبر الطرفية

تدرّب بنفسك: Playground لـ Terminal