Croncalc : Permata Ruby untuk menghitung kejadian pekerjaan cron. Dengan permata ini, Anda dapat dengan mudah menentukan kapan pekerjaan cron akan terjadi dengan memberikan ekspresi cron. Fitur utama termasuk kemampuan untuk menghitung kejadian :
Alat ini dapat digunakan untuk menjadwalkan, memperkirakan, dan menganalisis tugas dalam sistem yang menggunakan cron untuk penjadwalan pekerjaan. Anda juga dapat membaca artikel tentang Croncalc di sini.
Instal permata dengan mengeksekusi:
$ gem install cron_calc
Setelah menginstal cron_calc
, Anda dapat menginisialisasi CronCalc
dengan string cron.
require 'cron_calc'
cron_calc = CronCalc . new ( '5 5 * * *' )
Sekarang, Anda dapat menggunakan salah satu dari tiga metode #in
, #next
, #last
untuk menentukan kejadian pekerjaan cron dalam periode yang ditentukan.
#in
Menghitung kejadian pekerjaan cron dalam periode waktu tertentu.
Parameter:
period
- Objek rentang yang mendefinisikan waktu awal dan akhir untuk perhitungan. 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
Menghitung kejadian 'n' berikutnya dari pekerjaan cron dari waktu mulai yang diberikan.
Parameter:
count
- (opsional, integer) Jumlah kejadian yang akan dihitung. Default ke 1.after:
- (Opsional, Waktu, Argumen Kata Kunci) Waktu mulai dari mana untuk menghitung kejadian. Jika tidak disediakan, default ke waktu saat ini (time.wow).max_years
- (opsional, integer, argumen kata kunci) Jumlah maksimum tahun untuk mencari kejadian di masa depan. Default ke 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
Menghitung kejadian 'n' terakhir dari pekerjaan cron sampai akhir zaman yang diberikan.
Parameter:
count
- (optional, Integer) The number of occurrences to calculate. Default ke 1.before:
- (Opsional, Waktu, Argumen Kata Kunci) Waktu akhir untuk menghitung kejadian masa lalu. Jika tidak disediakan, default ke waktu saat ini (time.wow).max_years
- (opsional, integer, argumen kata kunci) Jumlah maksimum tahun untuk mencari ke belakang untuk kejadian masa lalu. Default ke 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]
Laporan bug dan permintaan tarik dipersilakan di GitHub di https://github.com/mizinsky/cron_calc.
Permata tersedia sebagai open source di bawah ketentuan lisensi MIT.