Jenkins / الحالة المحفوظة والتسليم المضبوط / الدرس 14
المتانة ونطاق المهلة وسلامة الإعادة
افهم المقاطعة والتكرار دون اعتبار الاستئناف معاملة شاملة.
في هذه الصفحة
أهداف الدرس
- فصل حفظ التنسيق وحالة الوكيل والخارج.
- حساب إعادة محدودة ومراجعة موضع المهلة.
يدعم الحفظ وعد تعافٍ محدداً
توازن إعدادات متانة Pipeline عمل الحفظ وخصائص الصمود وفق أوضاع وافتراضات موثقة. لا تجعل كل خطوة إضافة قابلة للاستئناف ولا تعيد مجلداً ضائعاً تلقائياً. حدد في Parcel ما يخص استمرار المتحكم وعملية الوكيل والملفات والتخزين والهدف الخارجي. قد يتعافى السجل ويبقى فعل خارجي ناقصاً أو مكتملًا بالفعل. راجع المتانة كقرار خدمة مع المالك لا إعداد أداء عام من تركيب آخر. يوضح هذا الفصل ما يستطيع الاستئناف إثباته وما يتطلب ملاحظة مستقلة خارج حالة Pipeline المحفوظة.
يغير موضع المهلة الحد
تحد المهلة خارج retry كل المحاولات معاً، وقد تمنح المهلة داخله كل محاولة ميزانية جديدة. تختلف خيارات Declarative العامة والمرحلية في علاقتها بتخصيص الوكيل وفق المرجع، فيدخل انتظار الإنشاء بطرق مختلفة. صرح بالميزانية واترك وقتاً للتشخيص والتنظيف. تقاطع المهلة التنفيذ وفق عقدها ولا تثبت عدم قبول طلب خارجي أو عكس كل ابن. ينبغي أن يستطيع المراجع حساب أقصى وقت مقصود من موضع الأقواس ومعرفة الاستثناءات بدلاً من استنتاجه من رقم واحد ظاهر في ملف التعريف.
اعرض شكلاً محدوداً للتنسيق
يوضح المقطع مهلة خارجية ومحاولتين لخرج سجل قابل للاستبدال. لا يختبر خدمة أو يحاكي فشلاً فعلياً ولا يبرر إعادة أي أمر. يجب أن يكون الجسم الحقيقي آمن التكرار ونوع الخطأ مفهوماً. تدعم بعض شروط retry استهداف بنية أو خطوة غير قابلة للاستئناف، بحسب الإضافة والنطاق المراجعين. لا تخف عيب اختبار حتمياً بالإعادة حتى النجاح. نجاح echo الافتراضي لا يعطي دليلاً عن المقاطعة أو استرداد وكيل؛ الغرض إظهار موضع الحد الكلي حول مجموعة المحاولات.
timeout(time: 2, unit: "MINUTES") {
retry(2) {
echo "Illustrative replaceable observation"
}
}
لا يحدث انتظار أو فشل أو مهلة أو خطوة Jenkins. لا أثر للجسم إلا سجل افتراضي، وليس قالباً لإعادة نشر أو قاعدة بيانات.
احسب كلفة المحاولات والانتظار
يحسب النموذج الكامل ثلاث محاولات محدودة وانتظاري تراجع ولا ينام أو يعيد عملاً. يستثني الطابور والبدء والنقل وتأخر الإلغاء فلا يضمن زمن التعافي الكامل. يجب أن تعكس الميزانية سلوك الخطوة وتداخل المهلة. احفظ كل محاولة وسببها. تفيد النتيجة الأخيرة الناجحة لكن الفشل السابق قد يكشف تسابقاً أو اعتماداً غير مستقر أو مورداً أو عيب اختبار يحتاج مالكاً. لا تصبح المحاولات مستقلة إحصائياً أو آمنة تشغيلياً لمجرد تكرارها؛ يجب تبرير السياسة وفق العملية المعنية.
attempts = 3
limit_per_attempt = 12
backoffs = [2, 4]
assert len(backoffs) == attempts - 1
print(attempts * limit_per_attempt + sum(backoffs))
print("arithmetic only")
42
arithmetic only
ثلاث حدود باثنتي عشرة ثانية وست انتظار تساوي اثنتين وأربعين. لا يقاس توقيت أو وكيل أو خدمة.
لاحظ الاكتمال المجهول قبل التكرار
إذا انتهت المهلة بعد التقديم فصنف غياب العملية أو جريانها أو اكتمالها أو فشلها أو مجهوليتها عبر مسار المالك. استخدم هوية الأصل وفق منع التكرار للنية نفسها. لا تعد التبني لأن التقرير فشل بعده. قد يحتاج وكيل ضائع استعادة مدخلات وحساباً آمناً، وتحتاج تغييرات البيانات المرجعية تعافياً خاصاً. تمرّن محلياً على القرار لكن إثبات إعادة التشغيل والإضافة والهدف يحتاج بيئة مصرحاً بها. يبقي السجل الجيد الفشل الأصلي والقرار اللاحق مترابطين حتى لا يعد نظام آخر الحالة القديمة طلب إعادة جديداً.
الأخطاء الشائعة وإصلاحها
يُفترض أن الاستئناف يعيد كل ملف وكيل.
- لماذا يحدث؟
- اختلط حفظ المتحكم ودورة المجلد.
- كيف تصلحه؟
- احفظ المدخل والناتج بعقد تخزين وتعافٍ صريح.
- كيف تتجنب تكراره؟
- وثق مالك كل طبقة وبقاءها.
تكرر إعادة مرحلة فعلاً خارجياً مكتملًا.
- لماذا يحدث؟
- شملت الوحدة أثراً غامض الاكتمال.
- كيف تصلحه؟
- لاحظ الأصل واستأنف الناقص الآمن.
- كيف تتجنب تكراره؟
- حدد هوية الطلب والتكرار مسبقاً.
تُعد مهلة المحاولة موعداً كلياً واحداً.
- لماذا يحدث؟
- أُهمل تداخل الحدود.
- كيف تصلحه؟
- ضع الميزانية واحسبها حسب النطاق.
- كيف تتجنب تكراره؟
- راجع التخصيص والمحاولات والانتظار والتنظيف.
اختبر فهمك
1. هل تعطي مهلة خارجية دقيقتين لكل محاولة؟
اعرض الحل المشروح
لا. تحد الجسم المجمّع وفق المقاطعة. حد مستقل لكل محاولة عقد تداخل آخر بميزانية كلية أخرى. صرح بالوعد المقصود ولا تستنتجه من الرقم وحده.
2. وجد المستأنف التبني مكتملًا والتقرير غائباً. ماذا يعيد؟
اعرض الحل المشروح
تحقق من حالة الهدف والمرشح المرجعية ثم أعد التقرير أو التحقق الناقص الآمن حسب الحاجة. قد يكرر التبني آثاراً بلا داعٍ. احفظ علاقة الطلب ونتيجته الأصلية.
أهم ما تعلمته
- افصل المتانة واستعادة المجلد وحالة الخارج.
- أعد عملاً معروف التكرار واحفظ المحاولات.