معمارية البرمجيات / التفاعلات: التوزيع والفشل والتشغيل / الدرس 8
صمّم العمل غير المتزامن بإنجاز وضغط واضحين
استخدم الطوابير لفصل التوقيت مع مراعاة الدوام والتكرار والتراكم والنتيجة الظاهرة للمستخدم.
في هذه الصفحة
أهداف الدرس
- ميّز العمل المقبول من المكتمل وحدّد حدود الإقرار.
- حلّل نمو التراكم وقبول العمل المحدود دون وسيط حي.
يغيّر الطابور الحوار مع المستخدم
يعيد الاستدعاء المتزامن النتيجة ضمن مهلة الطلب. وقد يعود الأمر غير المتزامن قبل إنجاز العمل، فيحتاج هوية دائمة وطريقة لعرض التقدم أو الفشل النهائي. لا تسمِّ المقبول مؤكدا إلا إذا سمح تعريف العمل بذلك. قد يناسب تصدير تقرير سجل مهمة وتنزيل لاحق. أما المقعد الأخير فقد يتطلب تأجيل تخصيصه حالة انتظار ووعدا مختلفا للمستخدم.
اعتبر الإقرار حدا مصمما
يحتاج المنتج لمعرفة وقت قبول الوسيط الرسالة دائما وفق إعداداته. ويقرر المستهلك هل يأتي الإقرار بعد نجاح المعالجة أو تسليم دائم أو حدث محدد آخر. قد يعيد الانهيار قبل الإقرار الرسالة، وقد يفقد الانهيار بعد إقرار مبكر العمل. تختلف النوافذ باختلاف المنتج والمعاملة. افترض إمكان التكرار ما لم يوثّق ضمان أقوى محدد ويُتحقق منه. وتظل آثار العمل بحاجة لمنع التكرار أو انتقال حالة متكرر الأثر.
{"message_id":"m-51","type":"ReportRequested","schema_version":1,"job_id":"job-9","requested_at":"2026-10-28T10:00:00Z"}
يميز الغلاف هوية التسليم عن هوية المهمة. يساعد الزمن ونسخة المخطط على التفسير، لكنهما لا يضمنان الترتيب أو الدوام وحدهما.
لا يعالج المخزن عجز سعة دائم
عندما يتجاوز الوصول معدل الإنجاز المستدام ينمو التراكم ولو استجابت الواجهة بسرعة. لا يكفي طول الطابور؛ فعمر أقدم رسالة وزمن الإنجاز المتوقع قد يصفان أثر المستخدم أفضل. يكشف الحساب المحلي التالي العلاقة بمعدلات ثابتة افتراضية. الأنظمة الواقعية فيها دفعات وإعادات وأزمنة متغيرة وحدود سعة؛ لذا فهو أداة تفكير لا توقع. وقد تنقل زيادة العاملين التنافس إلى قاعدة أو مزود لا يتحمل توازيا أكبر.
arrival_per_minute = 12
completion_per_minute = 9
minutes = 5
backlog = max(0, (arrival_per_minute - completion_per_minute) * minutes)
print(f"backlog={backlog}")
print(f"net_growth_per_minute={arrival_per_minute - completion_per_minute}")
backlog=15
net_growth_per_minute=3
يتراكم في الطابور الافتراضي الفارغ خمس عشرة مهمة خلال خمس دقائق بمعدل ثلاث في الدقيقة. لا يشغّل المثال وسيطا أو عاملا أو مولد حمل أو خدمة.
حدّد القبول والإعادة ومعالجة الرسائل المعيبة
يعني الضغط العكسي تخفيض العمل الوارد أو رفضه عندما تعجز السعة اللاحقة عن مجاراته بأمان. حدّد حدود الطابور والانتهاء والإنصاف بين المستأجرين ورد الرفض الصادق. تحتاج الإعادة المحدودة نتيجة نهائية ومسار تحقيق مملوكا. طابور الرسائل المعزولة مخزن لمشكلات لم تُحل، وليس سياسة إصلاح؛ وقد تكرر إعادة الجميع أثرا ضارا أو تحمل الاعتمادية نفسها. احفظ الهوية وسبب الفشل واشترط إصلاحا متوافقا وشروط إعادة مضبوطة.
حدّد الترتيب حيث يحتاجه العمل
قد ينهي المستهلكون المتوازيون الرسائل بغير ترتيب الوصول. إذا وجب أن يلي تحديث الورشة إنشاءها، ففكّر في تسلسل لكل ورشة أو فحص نسخة أو انتقال يرفض الحدث القديم. غالبا ما يكلف الترتيب العام أكثر من المطلوب. اشرح تفاعل انتهاء المهام وإلغائها واستعلام المستخدم مع الحالات النهائية. اختبر التكرار والتأخر والاختلال في تنفيذ معزول قبل ادعاء الموثوقية. ينمذج الدرس الرسائل والمعدلات فقط ولا يثبت ضمانات وسيط أو نشر معين.
الأخطاء الشائعة وإصلاحها
يُعرض التصدير المقبول كمكتمل.
- لماذا يحدث؟
- اختلط قبول النقل بإنجاز العمل.
- كيف تصلحه؟
- اعرض حالة مهمة دائمة ونتيجتها النهائية.
- كيف تتجنب تكراره؟
- حدّد حالات المستخدم قبل إضافة الطابور.
تجعل زيادة العاملين المزود يفشل أسرع.
- لماذا يحدث؟
- تجاهل التوازي حدود سعة الجهة اللاحقة.
- كيف تصلحه؟
- حدّد التوازي والقبول وفق سعة مقاسة للاعتمادية.
- كيف تتجنب تكراره؟
- راقب العمر ومعدل الإنجاز وتشبع الاعتمادية معا.
ينمو طابور معزول بلا مالك.
- لماذا يحدث؟
- اعتُبر تخزين الفشل حلا.
- كيف تصلحه؟
- عيّن مسؤوليات التشخيص والاحتفاظ والتصحيح والإعادة.
- كيف تتجنب تكراره؟
- اختبر رسالة دائمة العيب ومسارها النهائي.
اختبر فهمك
1. عند وصول 20 مهمة وإنجاز 15 في الدقيقة، ماذا يحدث بعد عشر دقائق من فراغ الطابور؟
اعرض الحل المشروح
يتراكم خمسون عملا في النموذج الثابت. تخفي استجابة الإدخال السريعة التأخر ولا تزيله. افحص خفض الحمل أو زيادة السعة المستدامة أو حدود القبول. لا يحدد الحساب عددا آمنا للعاملين لأن زمن المعالجة والتنافس غير محددين.
2. ينهار مستهلك بعد إرسال البريد وقبل الإقرار. ما المشكلة التصميمية؟
اعرض الحل المشروح
قد يكرر التسليم الإشعار. تتبّع هوية ثابتة واستخدم عملية مزود متكررة الأثر إن توفرت، أو حدّد سياسة تقبل التكرار. لا يكفي علم في الذاكرة بعد الانهيار. صرّح بالآثار القابلة لمنع التكرار وما يظل مجهولا.
أهم ما تعلمته
- ينقل اللاتزامن الإنجاز والفشل إلى سير عمل صريح.
- تحتاج الطوابير حدود ضغط وملكية ومعالجة للتكرار.