Skip to content

التحكم الآمن في المرحّلات

حالة الاستخدام

استخدم هذا النمط عندما تؤثر عمليات المرحّل على معدات حقيقية ويحتاج المستدعي إلى التعامل مع إعادة المحاولة والنتائج غير المؤكدة وعدة قنوات مرحّل دون إحداث آثار جانبية مكررة.

التدفق الموصى به

أرسل جميع تغيّرات مرحّل جهاز واحد في مصفوفة relays واحدة. تصبح الدفعة الواحدة أمر جهاز واحد وتتجنب الإرسالات المتتالية التي قد لا يعالجها الجهاز بشكل موثوق.

التنفيذ خطوة بخطوة

  1. استخدم سرد تعريفات نوع الجهاز (بالإنجليزية) لتأكيد device.relay.set، وعدد المرحّلات، والإجراءات المسموحة.
  2. ابنِ مصفوفة المرحّلات المطلوبة. استخدم عنصرًا واحدًا للتحكم بقناة واحدة وعدة فهارس فريدة لتغيير منسّق.
  3. ولّد Idempotency-Key جديدًا يملكه المستدعي لهذه النية من العملية.
  4. استدعِ تنفيذ أمر مرحّل (بالإنجليزية) بصلاحية device:control.
  5. اقرأ data.command.id وdata.command.status. إذا كانت الحالة SENT، استخدم الحصول على نتيجة أمر (بالإنجليزية) حتى تصل إلى حالة نهائية أو موعدك الأقصى المحدود للاستعلام.
  6. استخدم data.state عندما يتضمنها تأكيد الجهاز. لا تُطلق تحديثًا آخر فقط لملء حقل اختياري.
  7. إذا كانت النتيجة TIMEOUT، اقرأ الحالة الحالية للجهاز قبل تقرير ما إذا كانت عملية أخرى آمنة.

دورة حياة الأمر

النتيجةالمعنىإجراء العميل
HTTP 202 + COMMAND_ACCEPTEDقبلت المنصة الطلب؛ ليست حالة أمر مستقلةاقرأ data.command.status واحتفظ بمعرّف الأمر
SENTلا يزال الأمر ينتظر التأكيداستعلم عن النتيجة بسحب محدود
SUCCESSأكّد الجهاز التنفيذطبّق الحالة المُعادة عند وجودها
FAILEDأكّدت المنصة أن الأمر لم يكتملأوقف إعادة المحاولة التلقائية وعالج الفشل
TIMEOUTلم يصل أي تأكيد نهائي ضمن نافذة الانتظارلا تفترض أن الجهاز نفّذ أو لم ينفّذ؛ اقرأ الحالة الحالية أولًا

الواجهات الرئيسية

الفشل والتعافي

  • إذا كانت نتيجة HTTP غير معروفة بسبب فشل الشبكة، أعِد المحاولة بالطلب نفسه باستخدام Idempotency-Key نفسه.
  • بعد 429 RATE_LIMITED، انتظر Retry-After، ثم أعِد محاولة العملية نفسها بالمفتاح الأصلي.
  • لا تُعِد استخدام مفتاح لجهاز أو مصفوفة مرحّلات أو إجراء مختلف أبدًا؛ يُعيد ذلك IDEMPOTENCY_CONFLICT.
  • بعد TIMEOUT، حدّث الحالة أولًا. إذا ظلت غير معروفة، تطلّب قرار عمل قبل إرسال عملية فعلية أخرى.
  • يمكن أن يُنتج تكرار JOG أو إجراءات معدات أخرى آثارًا جانبية حقيقية حتى عندما تُفقد الاستجابة السابقة. صمّم التأكيدات وضمانات المشغّل وفقًا لذلك.

اعتبارات الإنتاج

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

الخطوات التالية

Docs buildVersion v1.5.8-20260814-180545-84
Copyright © 2026 WLTE