فراس محمد
→ كل المقالات
الأتمتة · المراقبة

لماذا تتعطل الأتمتة بصمت، وكيف تكتشف ذلك

كل عطل حقيقي في نظام الأتمتة الذي بنيته لبحثي عن عمل انتهى برمز نجاح وسجل نظيف. هذه الفحوص التي تكشف هذا النوع من الأعطال الآن.

بقلم · · 4 دقائق قراءة

الجواب المختصر

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

الفحص الذي يكشف ذلك يسأل: هل المخرجات معقولة؟ هل يتغير العدد حين يتغير الاستعلام؟ هل تطابق النتائج ما طُلب؟ هل طال صمت المسار أكثر مما يسمح به تاريخه؟

كيف بدا العطل الصامت

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

  • مسار بحث في أحد مواقع الوظائف قرأ 7 بطاقات فقط، هي الظاهرة على الشاشة. البحث عن «Head of Operations» أعاد وظيفتي مراقب مستندات أول ومساعد مستودع.
  • جولة المسح الكاملة احتاجت نحو 68 دقيقة، والمهلة 40 دقيقة. النتائج كانت تُحفظ بعد آخر مسار فقط، فضاعت كل جولة عند الدقيقة 40 والسجل يطبع «Found 40 roles».
  • حساب API بلغ سقف الإنفاق. خطوة البريد خرجت برمز خاطئ، فتخطت البديل وتوقفت عن المطابقة.
  • غياب مهلة على الطلبات الشبكية جعل اتصالًا معلقًا واحدًا يوقف الجولة. خمسة مسارات صمتت من 11 إلى 12 يومًا.
42 → 174

عدد الصفوف من مسار البحث هذا قبل الإصلاح وبعده. الصفوف الـ42 الأولى كانت كلها خاطئة.

خمسة فحوص تكشفه

  1. راقب العدد. نتائج البحث الحقيقية تتغير. المسار الذي يعيد العدد نفسه لاستعلامات مختلفة يقرأ جزءًا ثابتًا من الصفحة. العدد الذي يساوي حجم الصفحة تقسيم صفحات عادي، فأكتفي فيه بملاحظة. الفحص الذي يطلق إنذارات كاذبة يتجاهله الجميع.
  2. شغّل فحص كناري مع استعلام ضابط. مرة في اليوم يجرب كل مسار كلمات حقيقية ومعها استعلامًا بعيدًا عن المجال: «Nurse» في البحث عن وظائف العمليات. إذا تداخلت النتائج فالكلمة المفتاحية لا تُطبَّق. ونتيجة الكناري القديمة مشكلة بحد ذاتها. في أكتوبر نزل عدد أحد المسارات في الكناري من 25 إلى 7 ثم إلى 0 خلال ثلاثة أيام، وفحص تسجيل الدخول يقول إن كل شيء سليم. كان الموقع قد نقل صفحة البحث.
  3. احسب حد الصمت من تاريخ كل مسار. أول تنبيه أرسلته استخدم 4 أيام ثابتة لكل المسارات، فنبّه على جولة لمرة واحدة، 94 صفًا في يوم واحد، بعد 63 يومًا من الصمت. الحد الآن هو وسيط الفجوة بين أيام النشاط مضروبًا في 3، وحده الأدنى 4 أيام. المسار الذي نشط في أقل من 3 أيام لا حد له. المسار الذي يعمل كل ساعة ينبّه بعد 4 أيام، والمسار الذي أشغّله يدويًا قد يصمت 6 أيام.
  4. نبّه عند التحول فقط. تخرج رسالة حين تظهر المشكلة وحين تزول. التنبيه الذي يتكرر كل ساعة ليقول إن العطل مستمر يُكتم، والتنبيه المكتوم يوحي بأن كل شيء تحت المراقبة. وذلك التنبيه الأول نفسه حمل أمر إصلاح كان سيخفي المشكلة.
  5. اعتبر الصفر خطأ. إحدى الخطوات طبعت علامة خضراء «كل شيء موجود» فوق قائمة فارغة. صفر نتائج صار الآن فشلًا صريحًا.

الإصلاح يحتاج إثباتًا

تقرير الحالة عندي كان يطبع أمر الإصلاح لكل مشكلة، وكان على شخص أن يكتبه بنفسه. فأضفت حارسًا آليًا يعمل كل ساعة: يكتشف، ثم يصلح، ثم يتحقق، ثم يصعّد.

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

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

أين يبقى الإنسان

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

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

أسئلة شائعة

كيف أعرف أن المهمة المجدولة تعمل فعلًا؟

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

هل يجب أن تصلح الأتمتة نفسها؟

نعم، لقائمة قصيرة من عمليات إعادة التشغيل الآمنة، مع حد للمحاولات وفحص بعد كل إصلاح. أي شيء يعدّل الشيفرة أو السجلات أو يرسل باسمك يذهب إلى إنسان.

النظام وراء هذا

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

إذا كانت الأتمتة عندك تبلّغ بالنجاح وهي لا تفعل شيئًا، فهذا عمل أتولاه.