يفتح في علامة تبويب جديدة

صمّم لحدود المعدل قبل أن يفاجئك الانقطاع

صمّم لحدود المعدل قبل أن يفاجئك الانقطاع

طابور كان يفرغ كل صباح لم يعد يفرغ. سير العمل ما زال يظهر قيد التشغيل. واختبار الاتصال بالخدمة الخارجية ما زال ينجح. ومسؤول التشغيل الذي بحث عن العطل وجد سجلًا مليئًا بنشاط عادي، وفجوة واحدة في الموضع الذي كان ينبغي أن تظهر فيه دفعة من العناصر.

وعند تتبّع ما جرى من آخره إلى أوله، بدا التسلسل عاديًا. كان كل عنصر في الطابور يطلق استدعاءً لخدمة ذكاء اصطناعي خارجية. ومع حِمل صباحي أثقل، بدأت الخدمة ترفض بعض تلك الاستدعاءات، لأن سير العمل بلغ السعة المتاحة له. فكان سير العمل يلتقط كل رفض، ويسجّله على أنه عولج، وينتقل إلى العنصر التالي. وهكذا غادرت الطابورَ العناصرُ التي رُفضت استدعاءاتها مع العناصر التي نجحت.

ذلك عمل قُبل من عميل، وأُخرج من الطابور، وبقي دون إنجاز. الحد منع الاستدعاء المقصود، أما ما جرى للعمل بعد ذلك فحدّدته طريقة سير العمل في المعالجة. وهذا العمل الضائع هو الانقطاع، وقد وقع بينما كان كل مكوّن يعمل تمامًا كما بُني ليعمل.

ما الذي بلغه سير العمل

لكل خدمة خارجية يعتمد عليها سير عملك، سواء كانت خدمة ذكاء اصطناعي أو API، سعة محدودة متاحة له. وحد المعدل هو الطريقة التي تفرض بها الخدمة هذا الحد: النقطة التي تتوقف بعدها عن قبول استدعاءاتك لفترة من الوقت.

وهذه الحدود تأخذ أشكالًا مختلفة. بعضها موثَّق ويتوقف على فئة اشتراكك. وبعضها يتحرك مع الطلب، وبعضها يُفرض ببساطة في اللحظة التي تبلغه فيها.

والمرونة هنا تبدأ بتعديل متواضع في الافتراض: عامِل السعة المتاحة في اللحظة نفسها على أنها محدودة، ولا تعتمد على أن كل استدعاء تقصده سيُقبل لحظة إرساله.

بلوغ الحد ليس هو الخطأ. الخطأ أن تبلغ صنفًا معروفًا من قيود السعة دون أن تكون قد قررت ما يحدث للعمل بعد ذلك.

معالج الأخطاء توقف قبل قرار واحد

سير العمل في تلك الحادثة كانت فيه معالجة للأخطاء فعلًا: التقط الرفض وسجّله. أما الجزء الناقص فكان قرارًا بشأن العنصر الذي رُفض استدعاؤه للتو.

الخطأ قد يخبرك لماذا لم يكتمل الاستدعاء، أما ما ينبغي لسير عملك أن يفعله بالعمل غير المنجز فقرار ما زال عليك أن تتخذه.

وهذان جزءان منفصلان من التصميم، والثاني هو الذي يغيب عادة، لأن التقاط الخطأ يبدو كأنه معالجة له. فالاستثناء الملتقط يترك سطرًا مرتبًا في السجل، ويجعل سير العمل يبدو متماسكًا. أما العنصر الذي كان يعالجه فمسألة أخرى، تحتاج إلى إجابة مقصودة.

أربعة تصرّفات للعمل غير المنجز

حين لا تتوفر السعة، لا بد من قرار بشأن العمل الذي بين يدي سير العمل. وهناك أربعة احتمالات لمصيره، ولكلٍّ منها حالة تناسبه:

  • إعادة المحاولة: محاولة العمل نفسه مرة أخرى بعد وقت قد تكون السعة توفرت فيه
  • الإدراج في الطابور: حفظ العمل ليُعالَج تلقائيًا حين تتوفر السعة
  • التأجيل: حفظه لمحاولة لاحقة مجدولة، أو لمحاولة يستأنفها أحد عمدًا
  • التنفيذ المخفَّف: المضي بنتيجة أقل عمدًا لكنها صالحة، تتجنب الاستدعاء المحجوب

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

والإدراج في الطابور والتأجيل يسهل الخلط بينهما. أدرِج العمل في الطابور حين ينبغي أن يُستأنف تلقائيًا مع توفر السعة. وأجّله حين ينقله سير العمل عمدًا إلى نقطة معالجة لاحقة: جدول زمني، أو مُشغِّل، أو إجراء يستأنفه أحد.

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

والتأكيد الذي ينتظره العميل يختلف في صنفه عن دفعة إثراء تجري ليلًا، ولكلٍّ منهما إجابة مختلفة.

أيًّا كان التصرّف، يبقى العمل المعلَّق ظاهرًا

الأربعة تجيب عن السؤال نفسه: ماذا يحدث للعمل. وتترك سؤالًا ثانيًا مفتوحًا ينطبق عليها جميعًا بالقدر نفسه: هل يستطيع أحد أن يعرف أن هذا العمل ما زال معلَّقًا؟

وأيًّا كان التصرّف الذي تختاره، ينبغي أن يبقى العمل المعلَّق ظاهرًا حتى يكتمل، أو يُلغى عمدًا، أو يُحسم بطريقة أخرى. فالعنصر المنتظر في الطابور، إن لم يكن هناك ما يُظهر أنه ينتظر، يبدو تمامًا كعنصر مكتمل. والعنصر المؤجَّل الذي لا وجود له إلا داخل أداة جدولة سيكتشفه العميل الذي كان ينتظره.

الإخفاق المنضبط يحفظ حالة العمل ويُبقي الإجراء المعلَّق ظاهرًا. وإسقاط العمل دون أن يعلم أحد يظل انقطاعًا. وأي استجابة تُضيّع العمل، أو تترك حالته مجهولة، أو تخفي إجراءً معلَّقًا، تسقط في هذا الاختبار مهما بدا سير العمل هادئًا وهو يواصل.

نطاق السعة

نطاق السعة وصف قصير لسير عمل واحد عند حدّ سعته. وهو يترك الحصص جانبًا ويسجّل ما يفعله سير عملك حين تمنع السعةُ الاستدعاء المقصود، في أربعة حقول، بهذا الترتيب.

إشارة السعة

ما الذي يخبر سير العمل هذا أن الاستدعاء الخارجي المقصود لا يمكن أن يتم لأن السعة غير متاحة؟ في حادثة الطابور الصباحي، كانت تلك الإشارة حاضرة منذ أول استدعاء مرفوض. التقطها سير العمل، وسجّلها، وعدّها نهاية المسألة. والإشارة التي لا تصل إلا إلى السجل رُصدت، لكنها لم تُربط بأي شيء.

التصرّف

لهذا الصنف من العمل: إعادة محاولة، أم إدراج في طابور، أم تأجيل، أم تنفيذ مخفَّف؟ لكل صنف من العمل إجابته، وكتابة الإجابات كلًّا على حدة هي ما يمنع تطبيق ردّ فعل واحد على كل ما يتعامل معه سير العمل.

الحالة المحفوظة

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

موضع العمل المعلَّق

أين يبقى العمل غير المنجز ظاهرًا حتى يُحسم؟ الشكل أقل أهمية من أن يكون للعمل المعلَّق مكان يراه فيه شخص ما: قائمة يفتحها أحد، أو عدّاد على شاشة تشغيلية، أو تنبيه يحمل اسم شخص. وإذا كانت الإجابة الصادقة عن هذا الحقل أن العمل المعلَّق سيبقى في السجلات، فالموضع لم يُختر بعد.

املأه لسير عمل واحد

خذ سير عمل واحدًا يعتمد على استدعاء خارجي لخدمة ذكاء اصطناعي أو API، وليكن الذي سيصل إخفاقه إلى عميل قبل غيره. واكتب له الحقول الأربعة: الإشارة، والتصرّف، والحالة المحفوظة، وموضع العمل المعلَّق.

إذا تركت أحد الحقول دون تعريف، كشف حدُّ السعة السلوكَ الموجود في سير العمل عند تلك النقطة أصلًا. وغاية نطاق السعة أن يصير ذلك السلوك مقصودًا قبل بلوغ الحد.

قبل أن تضيف أداة جديدة، يستحق أن تعرف إن كان عملك يعتمد على نظام أم عليك أنت. أعددتُ تقييمًا مجانيًا من دقيقتين يمنحك قراءة واضحة لذلك، وأول خطوة يجب إصلاحها. ابدأ التقييم المجاني.

اعمل معنا

لست متأكدًا من أين تبدأ؟

فحص ملاءمة الأنظمة المجاني: تسعة أسئلة في نحو 5 دقائق تقترح نظامًا واحدًا تبدأ به، مع خطوة تالية مجانية.

ابدأ فحص الملاءمة المجاني
القائمة البريدية

إشارات أوضح. قرارات أذكى.

انضمّ إلى قائمتنا البريدية واحصل على أفضل ما نكتبه عن الذكاء الاصطناعي والأنظمة مباشرةً في بريدك — دون ضجيج.

Subscription Form

لا رسائل مزعجة. يمكنك إلغاء الاشتراك في أي وقت.

منشورات ذات صلة

اترك أول تعليق