انتظار بعض الإجراءات لإجراء ما قبل التنشيط

راجع هذا السيناريو - بفرض أنك تريد أن يقوم أحد إجراءات تجاوز الاستحقاق بإنشاء قيد مهمة بحيث يتمكن المستخدم من اعتماد المرحلة التالية من معالجة تجاوز الاستحقاق. عند تنشيط هذا الإجراء، ستقوم خوارزمية تنشيط الإجراء بإنشاء قيد مهمة، لكنها لن تقوم بتحويل حالة الإجراء إلى مكتمل. وبالأحرى، سيصبح إجراء تجاوز الاستحقاق بالحالة قيد الانتظار. وعندما يكون الإجراء بالحالة قيد الانتظار، سيقوم مدير إجراءات تجاوز الاستحقاق/الإنهاء بمراقبة حالة قيد المهمة. وعند اكتمال قيد المهمة، يمكن أن يتحول إجراء تجاوز الاستحقاق الأصلي إلى الحالة مكتمل ثم يتم تحفيز الإجراءات التابعة الأخيرة. وتوضح النقاط التالية كيفية تكوين النظام بحيث يدعم نوع الإجراء هذا:

  • تعمل خوارزمية تنشيط الإجراء الخاصة بنوع الإجراء على النحو التالي:
    • تقوم الخوارزمية بإنشاء الكائن الذي ينتظره إجراء تجاوز الاستحقاق.
    • يجب أن تقوم الخوارزمية بربط هذا الكائن بمعالجة تجاوز الاستحقاق من خلال إنشاء قيد تسجيل فيه إشارة إلى المفتاح الأساسي للكائن المرتبط (في خاصية المفتاح الخارجي). كما يشير قيد التسجيل إلى الإجراء.
    • تترك الخوارزمية إجراء تجاوز الاستحقاق بالحالة قيد الانتظار.
  • يجب أن يحتوي نوع الإجراء على خوارزمية مراقبة إجراء قيد الانتظار. ويتم استدعاء هذه الخوارزمية في كل مرة يتم فيها تشغيل مدير إجراءات تجاوز الاستحقاق/ الإنهاء. إذا تم تحويل حالة الكائن المرتبط إلى الحالة "نهائي"، يتم تحويل حالة إجراء تجاوز الاستحقاق الأصلي إلى الحالة مكتمل (ويتم بعد ذلك تحفيز الإجراءات التابعة الأخيرة).
ملاحظة:

الخلاصة. يجب إعداد خوارزميتين في نوع إجراء تجاوز الاستحقاق لتنفيذ وظيفة الانتظار: الأولى هي خوارزمية تنشيط الإجراء والتي تقوم بإنشاء الكائن المراقَب، والثانية هي خوارزمية مراقبة إجراء قيد الانتظار للتحقق من حالة الكائن المراقَب. ويتولى مدير إجراءات تجاوز الاستحقاق/ الإنهاء مسؤولية مزدوجة بتنشيط الإجراء ومراقبة الكائن المرتبط الخاص به حتى الإكمال (ثم تحفيز الإجراءات التابعة عند اكتمال الإجراء).

مع توضيح المثال السابق لكيفية قيام إجراء تجاوز الاستحقاق بإنشاء قيد مهمة ثم مراقبته، يمكنك استخدام هذه الوظيفة لإنشاء أي كائن بالحالتين "أولي" و"نهائي" ومراقبته. وإذا كانت الحزمة الأساسية لا تحتوي على الخوارزميات التي تحتاجها، قم بوضع خوارزميات جديدة مستعينًا بخوارزميات الحزمة الأساسية كأمثلة.