Croncalc : อัญมณีทับทิมสำหรับการคำนวณงาน cron ที่เกิดขึ้น ด้วยอัญมณีนี้คุณสามารถกำหนดได้อย่างง่ายดายว่างาน cron จะเกิดขึ้นได้อย่างง่ายดายโดยให้การแสดงออกของ cron คุณสมบัติที่สำคัญรวมถึงความสามารถใน การคำนวณเหตุการณ์ :
เครื่องมือนี้สามารถใช้สำหรับการกำหนดเวลาการพยากรณ์และการวิเคราะห์งานในระบบที่ใช้ cron สำหรับการจัดตารางงาน คุณยังสามารถอ่านบทความเกี่ยวกับ Croncalc ได้ที่นี่
ติดตั้งอัญมณีโดยดำเนินการ:
$ gem install cron_calc
หลังจากติดตั้ง cron_calc
คุณสามารถเริ่มต้น CronCalc
ด้วยสตริง cron
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
คำนวณเหตุการณ์ 'N' ครั้งต่อไปของงาน cron จากเวลาเริ่มต้นที่กำหนด
พารามิเตอร์:
count
- (ไม่บังคับจำนวนเต็ม) จำนวนเหตุการณ์ที่จะคำนวณ ค่าเริ่มต้นเป็น 1after:
- (ไม่บังคับเวลาอาร์กิวเมนต์คำหลัก) เวลาเริ่มต้นที่จะคำนวณเหตุการณ์ หากไม่ได้ให้ค่าเริ่มต้นไปยังเวลาปัจจุบัน (เวลาตอนนี้)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
- (ไม่บังคับจำนวนเต็ม) จำนวนเหตุการณ์ที่จะคำนวณ ค่าเริ่มต้นเป็น 1before:
- (ไม่บังคับเวลาอาร์กิวเมนต์คำหลัก) เวลาสิ้นสุดที่จะคำนวณเหตุการณ์ที่เกิดขึ้นในอดีต หากไม่ได้ให้ค่าเริ่มต้นไปยังเวลาปัจจุบัน (เวลาตอนนี้)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
อัญมณีมีให้เป็นโอเพ่นซอร์สภายใต้ข้อกำหนดของใบอนุญาต MIT