سؤال

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

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

هل كانت مفيدة؟

المحلول

هناك الأحجار الكريمة / الإضافات لهذا الغرض، مثل جدولة Rufus أو أكثر من الأحجار الكريمة "كلما". أنا أحب محلول douglassellers، لم أسمع عن ذلك.

نصائح أخرى

يمكنني استخدام الوظيفة المتأخرة، "قاعدة البيانات مدعومة في قائمة انتظار الأولوية غير المتزامنة" لإنجاز شيء مشابه. القي نظرة على http://github.com/tobi/delayed_job.

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

يمكنك استخدام شيء مثل القضبان Cron Cron (Gem Install Rails_cron) للقيام بذلك، مما يدور عملية قضبان أخرى مخصصة للقيام بمهام خلفية مجدولة. أود أن أوصي به بهذه الطريقة، حيث يجب مراقبة مثيل القضبان الإضافية وتوقفها وبدأت مع بقية تطبيقك، وفي تجربتي عرضة للغاية للسقوط.

الحل الأفضل هو مجرد استخدام أعفى، http://github.com/latimes/crafen., ، لإدارة Crontabs من خلال ملفات YAML في تطبيق القضبان الخاص بك. يتم تحديد كل مهمة مجدولة في ملف YAML، ثم عند إجراء عملية النشر، تقرر ما إذا كان ملف Crontab لمستوى النظام يحتاج إلى تحديث أم لا. يتم توصيله مباشرة في ملف نشر Capistrano الخاص بك ومفتاح بدوره بشكل معقول. يمنح هذا ميزة ما زالت إدارة المهام المجدولة في تطبيق القضبان الخاص بك أثناء تنفيذها بالفعل مع Cron مستوى نظام التشغيل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top