إن صندوق وارد الوكيل هو طابور مخصص لكل وكيل تنتظر فيه الطلبات عندما يكون الجهاز في وضع السكون، أو يكون الـ daemon غير متصل، أو يكون الوكيل مشغولاً بالفعل. يستقر كل طلب هناك مع معرّفه، والشخص الذي أرسله، وحالة الموافقة عليه، ويعمل الـ daemon على معالجة صندوق الوارد بالترتيب فور عودته. لن يُفقد أي طلب أبداً لمجرد إغلاق غطاء الكمبيوتر المحمول، ولن يُشغَّل أي طلب مرتين بسبب إعادة تشغيل الـ daemon.
تدفع الوكلاء المحلية ثمن مزاياها من جانب التوافر. وصندوق الوارد هو الوسيلة للحفاظ على هذه التكلفة في أدنى حدودها.
ما يدخل في صندوق الوارد
كل طلب، دائماً. حتى عندما يكون الجهاز متصلاً، يمر الطلب عبر صندوق الوارد في طريقه إلى بيئة التشغيل؛ حيث يصادف فقط أن يكون الطابور فارغاً. يُخصص صندوق الوارد لكل وكيل: وكيلان على جهاز واحد يمتلكان صندوقي وارد ويعملان بالتوازي؛ بينما يشغّل الوكيل الواحد صندوق وارده بالتسلسل، طلباً تلو الآخر، حتى لا يُعدَّل دليل العمل من قِبل عمليتي تشغيل في آنٍ واحد.
صندوق وارد طوال الليل: ثلاثة طلبات تمت الموافقة عليها تنتظر بالترتيب؛ وأحدها لا يزال يحتاج إلى المالك؛ يستيقظ الجهاز ويعالجها.
الترتيب والحالة
تُنفَّذ الطلبات بترتيب الموافقة عليها، لا بترتيب إرسالها. فالطلب الوارد من شخص لديه إذن مسبق دائم تتم الموافقة عليه فور وصوله ويأخذ مكانه؛ بينما يحتفظ الطلب الذي ينتظر موافقة المالك بموقعه لكن يتم تخطيه حتى يُوافَق عليه. يمكن للمالك إزالة العناصر من صندوق الوارد أو إعادة ترتيبها قبل تشغيلها.
يحمل كل عنصر حالته طوال فترة الانتظار: pending (يحتاج إلى موافقة)، أو approved (في انتظار الجهاز)، أو running (كان قيد التشغيل عندما دخل الجهاز في وضع السكون). راجع معرّفات الطلبات وعمليات التشغيل القابلة للاستئناف.
الاستيقاظ
عندما يعود الـ daemon، يستطلع وجود مهام جديدة، ويتلقى صندوق الوارد بالترتيب، و:
- يستأنف أي طلب كان قيد التشغيل عندما دخل الجهاز في وضع السكون، باستخدام مرجع جلسة بيئة التشغيل المخزن. نفس المعرّف، ونفس الجلسة، وفجوة في الخط الزمني بدلاً من تكرار التشغيل.
- يُشغّل الطلبات التي تمت الموافقة عليها واحداً تلو الآخر.
- يترك الطلبات المعلقة في مكانها حتى يرد المالك.
الموافقات التي لم يتم الرد عليها لفترة تتجاوز TTL (24 ساعة افتراضياً) تنتهي صلاحيتها بحلول ذلك الوقت، ويتم وضع علامة expired على الطلبات بدلاً من تشغيلها بعد فوات الأوان.
إبقاء الجهاز متاحاً
يجعل صندوق الوارد فترات انقطاع الاتصال آمنة؛ لكنه لا يجعلها سريعة. هناك ثلاث عادات تقصّر هذه الفترات.
- ثبّت الـ daemon كخدمة باستخدام
muti service install. فهو يبدأ عند تسجيل الدخول ويُعاد تشغيله بعد أي تعطل، وبذلك تنتهي حجة "الـ daemon لا يعمل" كسبب للانتظار. - عطّل وضع السكون أثناء ساعات العمل على الأجهزة المكتبية، أو صِل الكمبيوتر المحمول بمصدر الطاقة واضبطه ألا يدخل في وضع السكون أثناء الشحن. فالغطاء المغلق يعني وكيلاً غير متصل.
- تحقق من
muti statusعند الشك. يُظهر الأمر ما إذا كان الـ daemon متصلاً وتوقيت آخر استطلاع قام به.
ما يراه مرسل الطلب
طلبهم في الغرفة مع معرّفه وحالته: "قيد الانتظار، الجهاز غير متصل منذ الساعة 22:00" أو "في انتظار موافقة Noah". يمكنهم إلغاؤه أو إضافة رسالة إليه. وعندما يُشغّل، يُبث الخط الزمني كالمعتاد. لا يحتاج أي شخص إلى إعادة الإرسال.
الأسئلة الشائعة
هل يوجد صندوق الوارد على جهازي أم في الغرفة؟ في خدمة الغرفة. وهذا ما يتيح له قبول الطلبات أثناء إيقاف تشغيل الجهاز، وما يمكّن المالك من إعادة ترتيبه من الهاتف.
هل يمكنني إفراغ صندوق الوارد؟ نعم. تؤدي إزالة العناصر إلى إلغاء تلك الطلبات؛ ويرى مرسلو الطلبات الحالة cancelled.
ماذا لو كان الجهاز متوقفاً عن العمل لعدة أيام؟ تنتظر الطلبات. تنتهي صلاحية الموافقات وفقاً لقيمة TTL الخاصة بها؛ بينما لا تنتهي صلاحية الطلبات التي تمت الموافقة عليها، مع أن المالك قد يرغب في تنظيمها وحذف ما لا يلزم قبل أي غياب طويل.
هل ينطبق الأمر نفسه على طلبات منصات المحادثة؟ نعم. تصبح أي إشارة في Feishu أو Slack طلباً كأي طلب آخر وينتظر في صندوق الوارد نفسه. راجع تصميم Feishu.
أغلق الغطاء. ستجد الطلبات بانتظارك في الصباح. امنح وكيلك غرفة.
نُشر في