cron_calc
1.0.0
Croncalc :一種用於計算Cron作業事件的紅寶石寶石。有了這個寶石,您可以通過提供Cron表達來輕鬆確定何時會出現CRON作業。關鍵功能包括計算發生的能力:
該工具可用於調度,預測和分析使用CRON進行工作計劃的系統中的任務。您也可以在此處閱讀有關Croncalc的文章。
通過執行來安裝寶石:
$ gem install cron_calc
安裝cron_calc後,您可以使用cron字符串初始化CronCalc 。
require 'cron_calc'
cron_calc = CronCalc . new ( '5 5 * * *' )現在,您可以使用#in , #next , #last三種方法之一來確定指定期間內的CRON作業事件。
#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從給定的開始時間計算Cron作業的下一個“ N”出現。
參數:
count - (可選,整數)要計算的發生數量。默認為1。after: - (可選,時間,關鍵字參數)計算出發生的開始時間。如果未提供,則默認為當前時間(time.now)。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計算Cron作業的最後一個“ N”發生,直到給定的結束時間為止。
參數:
count - (可選,整數)要計算的發生數量。默認為1。before: - ((可選,時間,關鍵字參數)計算過去發生的結束時間。如果未提供,則默認為當前時間(time.now)。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] 歡迎在https://github.com/mizinsky/cron_calc上的GitHub上的錯誤報告和拉動請求。
根據MIT許可證的條款,該寶石可作為開源。