تكرار مهمة تنبؤ مجدولة قد يغير سجل النتائج إذا كانت كل محاولة تضيف صفًا. توثق Kubernetes أن إنشاء CronJob تقريبي؛ قد ينشئ مهمتين للموعد أو لا ينشئ مهمة، ولذلك توصي بعمل يتحمل التكرار. [1]
الخلاصة السريعة
حدد هوية الموعد وقاعدة كتابة النتيجة؛ عدد مرات التنفيذ لا يحدد وحده عدد النتائج، والتحمل الذي تصممه يجب أن يغطي الأثر المقصود.
- قد تنشأ مهمتان لموعد CronJob أو لا تنشأ مهمة؛ الموعد لا يضمن تنفيذًا واحدًا، ويوصي التوثيق بأن يتحمل العمل التكرار. [1]
- في جدولنا تضيف المحاولتان صفين إذا كانتا تكتبان بالإضافة؛ تساوي التنبؤين لا يجعل الصفين صفًا واحدًا.
- نفرض كتابة قيمة ثابتة بالمفتاح نفسه لموعد واحد؛ تكرار الاستبدال يعطي خانة واحدة بالقيمة نفسها، وهذا عقد مؤلف لا خاصية تلقائية للمجدول.
- مفتاح محاولة جديد لا يمثل الموعد نفسه، واختلاف القيم أو وجود أثر آخر يحتاج قاعدة مستقلة؛ لم نثبت تنفيذًا واحدًا فقط ولم ننفذ جدولة.
هل الموعد وعد بتشغيل واحد؟
تقول Kubernetes إن جدولة إنشاء المهام تقريبية، وقد تنشئ مهمتين للموعد أو لا تنشئ واحدة؛ لذلك ينبغي أن يتحمل العمل التكرار. [1]
نتناول مهمة تعطي تنبؤًا لبيانات محددة ثم تكتب النتيجة. وجود وقت مكتوب في بطاقة التشغيل لا يحدد عدد المحاولات التي وصل أثرها إلى السجل. نفرق الموعد المنطقي الذي نريده عن المحاولات التي قد تنفذه.
ولا نعكس التحذير إلى قول إن موعدًا معينًا عند المستخدم تكرر فعلًا. لا توجد سجلات تشغيل في هذا المقال. سنفترض محاولتين كي نفحص قاعدة الكتابة، دون قياس تكرار أو الادعاء أن المجدول نفذهما.
ماذا يحدث عند الإضافة لكل محاولة؟
نؤلف مهمة للموعد م ولنسخة مدخل معلنة. نفرض أن نتيجة كل من المحاولتين أ وب هي الدرجة 4، وأن قاعدة الإخراج تضيف صفًا مستقلًا في كل مرة. بعد أ يوجد صف بقيمة 4، وبعد ب يوجد صف ثان بقيمة 4.
عدد الصفوف الآن اثنان، ولو كان المحتوى متطابقًا. جمع القيم سيعطي 8، لكنه يصف أثر صفين في جدولنا، وليس تنبؤًا جديدًا لمهمة مدتها أو كميتها ثمانية. لم نعلن أن الجمع هو معنى النتيجة.
وقد يتعين الاحتفاظ بسجل المحاولتين للمراجعة. ذلك لا يجعلهما نتيجتين منطقيتين مختلفتين للموعد م. نقترح تمييز جدول تاريخ التنفيذ عن العرض الذي يمثل النتيجة المعتمدة لكل موعد، وفق تعريف صاحب المهمة.
أي قاعدة مؤلفة تجعل الأثر واحدًا؟
نبدل قاعدة الكتابة في التمرين: نستخدم المفتاح م مع هوية نسخة المدخل، وتستبدل كل محاولة خانته بالقيمة 4. نثبت المدخل والنسخة والنتيجة المفروضة، ونفترض أن عملية الاستبدال المحددة تطبق كما وصفنا.
بعد أ تصبح الخانة 4، وبعد ب تبقى 4 في الخانة نفسها. هذا يبين أثرًا لا يتغير عند تكرار الكتابة تحت الشروط التي ألفناها. لا ينشئ CronJob هذه القاعدة نيابة عن التطبيق، ولا يمنع التمرين المحاولة الثانية من البدء.
إذا صار المفتاح رقم المحاولة أ ثم ب، عادت لدينا خانتان مختلفتان. المطلوب في قاعدة مثالنا هو هوية العمل المنطقي نفسها، وليس مجرد معرّف فريد لأي تشغيل. ولا نفترض تقنية معاملة أو تنازع متزامن لم نحدد عقدها.
ما حدود هذا التحمل؟
تثبيت القيمة 4 مهم للحساب. لو تغيرت البيانات أو مرجع النموذج أو نتيجة المحاولة، احتجنا سياسة قبول للكتابة اللاحقة؛ «استبدال» وحدها لا تقول أي جواب نعتمده. نراجع هوية العمل وحدود أثره قبل تعميم القاعدة.
كذلك كتابة خانة واحدة لا تثبت أن إشعارًا أو ملفًا آخر لم يتكرر. نقترح قائمة آثار المهمة، مع قاعدة لكل أثر يراد أن يتحمل الإعادة. عدد تشغيل واحد في التقرير، إن وجد، لا يشرح وحده جميع الآثار خارج السجل المحدد.
لم ننشئ CronJob أو نحسب تنبؤ نموذج. قارن الرسم إضافة صفين بكتابة خانة ثابتة وفق عقد افتراضي، كي يفرق القارئ بين تكرار التنفيذ وتكرار الأثر، دون وعد بآلية تلقائية تضمن تنفيذًا واحدًا فقط.
المصادر ومتابعة القراءة
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
