croncalc : جوهرة الياقوت لحساب حوادث الوظائف cron. باستخدام هذه الأحجار الكريمة ، يمكنك بسهولة تحديد متى ستحدث مهمة CRON من خلال توفير تعبير CRON. تتضمن الميزات الرئيسية القدرة على حساب الأحداث :
يمكن استخدام هذه الأداة لجدولة المهام والتنبؤ بها وتحليلها في الأنظمة التي تستخدم CRON لجدولة الوظائف. يمكنك أيضًا قراءة المقالة حول croncalc هنا.
تثبيت الجوهرة عن طريق التنفيذ:
$ gem install cron_calc
بعد تثبيت cron_calc
، يمكنك تهيئة CronCalc
باستخدام سلسلة cron.
require 'cron_calc'
cron_calc = CronCalc . new ( '5 5 * * *' )
Now, you can use one of three methods #in
, #next
, #last
to determine cron job occurrencies within specified period.
#in
يحسب حوادث الوظائف CRON خلال فترة زمنية معينة.
حدود:
period
- كائن نطاق يحدد أوقات البدء والنهاية للحساب. period = Time . new ( 2024 , 1 , 1 , 0 , 0 ) .. Time . new ( 2024 , 1 , 4 , 0 , 0 )
cron_calc . in ( period )
# => [2024-01-01 05:05:00 +0100, 2024-01-02 05:05:00 +0100, 2024-01-03 05:05:00 +0100]
#next
يحسب أحداث "N 'التالية لمهمة CRON من وقت بدء معين.
حدود:
count
- (اختياري ، عدد صحيح) عدد الأحداث التي يجب حسابها. الإعدادات الافتراضية إلى 1.after:
- (اختياري ، الوقت ، وسيطة الكلمة الرئيسية) وقت البدء الذي لحساب الأحداث. إذا لم يتم توفيرها ، فإن الإعدادات الافتراضية للوقت الحالي (الوقت. الآن).max_years
- (اختياري ، عدد صحيح ، وسيطة للكلمة الرئيسية) الحد الأقصى لعدد السنوات للبحث عن الأحداث المستقبلية. الافتراضات إلى 5. cron_calc . next
# => [2023-12-20 05:05:00 +0100]
cron_calc . next ( 3 )
# => [2023-12-20 05:05:00 +0100, 2023-12-21 05:05:00 +0100, 2023-12-22 05:05:00 +0100]
cron_calc . next ( 2 , after : Time . new ( 2024 , 1 , 1 , 0 , 0 ) )
# => [2024-01-01 05:05:00 +0100, 2024-01-02 05:05:00 +0100]
#last
يحسب آخر أحداث "N 'في وظيفة cron حتى وقت نهاية معينة.
حدود:
count
- (اختياري ، عدد صحيح) عدد الأحداث التي يجب حسابها. الإعدادات الافتراضية إلى 1.before:
- (اختياري ، الوقت ، وسيطة الكلمة الرئيسية) وقت الانتهاء الذي لحساب الحوادث السابقة. إذا لم يتم توفيرها ، فإن الإعدادات الافتراضية للوقت الحالي (الوقت. الآن).max_years
- (اختياري ، عدد صحيح ، وسيطة للكلمة الرئيسية) الحد الأقصى لعدد السنوات للبحث للخلف عن الحوادث السابقة. الافتراضات إلى 5. cron_calc . last
# => [2023-12-19 05:05:00 +0100]
cron_calc . last ( 4 , before : Time . new ( 2024 , 1 , 1 , 0 , 0 ) )
# => [2023-12-31 05:05:00 +0100, 2023-12-30 05:05:00 +0100, 2023-12-29 05:05:00 +0100, 2023-12-28 05:05:00 +0100]
# You can omit the count parameter
CronCalc . new ( '5 5 */5 * SUN' ) . last ( before : Time . new ( 2020 , 1 , 1 , 0 , 0 ) )
# => [2019-12-01 05:05:00 +0100]
# You can combine ',' and '-'
CronCalc . new ( '5 5 5-7,10 FEB *' ) . next ( 5 )
# => [2024-02-05 05:05:00 +0100, 2024-02-06 05:05:00 +0100, 2024-02-07 05:05:00 +0100, 2024-02-10 05:05:00 +0100, 2025-02-05 05:05:00 +0100]
# You can use predefined definitions like @daily, @monthly, etc.
CronCalc . new ( '@monthly' ) . next ( 3 , after : Time . new ( 2024 , 1 , 1 , 0 , 0 ) )
# => [2024-01-01 00:00:00 +0100, 2024-02-01 00:00:00 +0100, 2024-03-01 00:00:00 +0100]
# I want to know when the next 10 Friday the 13ths will be!
CronCalc . new ( '0 0 13 * FRI' ) . next ( 10 )
# =>
# [2024-09-13 00:00:00 +0200,
# 2024-12-13 00:00:00 +0100,
# 2025-06-13 00:00:00 +0200,
# 2026-02-13 00:00:00 +0100,
# 2026-03-13 00:00:00 +0100,
# 2026-11-13 00:00:00 +0100,
# 2027-08-13 00:00:00 +0200,
# 2028-10-13 00:00:00 +0200]
يتم الترحيب بتقارير الأخطاء وطلبات السحب على Github على https://github.com/mizinsky/cron_calc.
الجوهرة متوفرة كمصدر مفتوح بموجب شروط ترخيص معهد ماساتشوستس للتكنولوجيا.