العربية

أدوات المطورين · مولد Crontab

تشغيل مهمة cron كل دقيقة: عندما يكون الاقتراع خاطئًا وما الذي يجب استخدامه

· لماذا يهم

كرون الاقتراع أداء

ستون دقيقة من العلامات بجانب تعبير حرف البدل المكون من خمسة حقول
الرسم التوضيحي المتجه الأصلي ToolAcre

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

يقوم بناء جملة كل دقيقة بإنشاء 1,440 من مرشحي التقويم في يوم كامل مدته 24 ساعة

يمتد `* * * * *` إلى كل دقيقة من 0 حتى 59، وكل ساعة وكل تاريخ تقويمي. في يوم كامل مكون من أربع وعشرين ساعة يُنتج 1,440 ملصقات دقائق لساعة الحائط متطابقة. يحدد الإعداد المسبق والاختبارات الخاصة بـ ToolAcre القواعد النحوية، بينما تعرض معاينتها المرشحين الخمسة التاليين فقط لإبقاء الواجهة قابلة للقراءة.

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

لا يمكن حساب تكلفة وقت التشغيل من التعبير وحده

لا يحتوي التعبير على وقت بدء العملية أو عدد الاتصالات أو حجم السجل أو استخدام الموارد. يمكن أن يشترك فحص سطر واحد واستيراد كبير في نفس النجوم الخمس مع فرض تكاليف لا تضاهى. قد تكون قائمة النفقات العامة في المصنف معقولة، ولكن لا يمكن ToolAcre تحديدها من نص الجدول.

لذلك يبدأ تحليل الأداء خارج المولد: مراقبة المدة، CPU، I/O والمكالمات النهائية للإجراء الحقيقي. اضرب بعناية حسب تردد المرشح فقط بعد قياس عمليات التشغيل التمثيلية. يمكن للمحلل أن يخبرك بعدد قيم الدقائق المتطابقة؛ لا يمكن أن يخبرك بتكلفة كل مباراة.

تعتمد الملاءمة على الإجراء الخارجي ومتطلبات زمن الوصول

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

قم بترجمة المتطلبات إلى الحد الأقصى للفاصل الزمني المقبول، ثم قارن ذلك بالتكلفة الملحوظة ومعالجة الفشل. إذا كان زمن الوصول لمدة خمس دقائق كافيًا، فإن `*/5 * * * *` يقلل من الدقائق المرشحة إلى اثنتي عشرة دقيقة في الساعة. إذا كان زمن الاستجابة لمدة دقيقة واحدة فقط يعمل، فاحتفظ بالإيقاع وعالج مخاوف التنفيذ بشكل صريح.

تقوم إزاحات الدقائق بتوزيع العمل الثابت بالساعة ولكن لا يتم توزيعه بشكل عشوائي

تقوم الإزاحة الثابتة مثل `7 * * * *` بتحديد الدقيقة السابعة من كل ساعة. ويمكنه فصل تلك الوظيفة عن العمل المحدد بالدقيقة صفر، لكنه حتمي وليس عشوائيًا. يمكن للإزاحات المتعددة توزيع المهام المعروفة على مدار الساعة عندما تكون دقيقة الحائط الخاصة بها غير مهمة.

ToolAcre يصف الدقيقة السابعة الماضية من كل ساعة ويقوم بمعاينة التواريخ المقابلة. ولا يقوم بفحص الجداول الأخرى على المضيف، لذا لا يمكنه إثبات أن الإزاحة المختارة هادئة. قم بإنشاء مخزون قبل توزيع الحمل، واحتفظ بسبب الإزاحة في الوثائق.

يعد العمال ومؤقتات الخدمة بدائل خارج هذا المستودع

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

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

مثال عملي: تقليل تكرار المرشح ومقارنة المعاينات

قارن بين ثلاثة تعبيرات في اللوحة: كل دقيقة، `*/5 * * * *`، و`7 * * * *`. يتقدم الأول بمقدار دقيقة واحدة، والثاني يحدد 0، 5، 10 والمضاعفات اللاحقة، والثالث يحدد موضع دقيقة واحدة في الساعة. تعرض الأوصاف كل تغيير دون تنفيذ أداة الاستقصاء.

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

ما لا يغطيه هذا هو جدولة الدقائق الفرعية، والتي لا يمكن لـ cron التعبير عنها

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

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

الخلاصة: اختر الفاصل الزمني الأكثر خشونة الذي يلبي الحاجة - ويقوم المولد بإنشاء تعبير */5 أو */15 بسهولة مثل خمس نجوم

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

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