Provides a chain of logics about chronology.
Waits till scheduled time and then triggers a given job. #run
is a periodic version of #once
.
trigger = Chrono::Trigger.new("30 * * * *") { Time.now }
trigger.once #=> 2000-01-01 00:30:00
trigger.run #=> 2000-01-01 01:30:00
#=> 2000-01-01 02:30:00
#=> 2000-01-01 03:30:00
#=> ...
Parses cron syntax and determines next scheduled run.
iterator = Chrono::Iterator.new("30 * * * *")
iterator.next #=> 2000-01-01 00:30:00
iterator.next #=> 2000-01-01 01:30:00
iterator.next #=> 2000-01-01 02:30:00
The following syntax is supported. See the examples for more details.
- (*) Asterisk
- (,) Comma
- (-) Hyphen
- (/) Slash
* * * * *
T T T T T
| | | | `- wday --- 0 .. 6 (0 = Sunday)
| | | `--- month -- 1 .. 12
| | `----- day ---- 1 .. 31
| `------- hour --- 0 .. 23
`--------- minute - 0 .. 59