rufus-scheduler 3.3.0 released
I have just released rufus-scheduler 3.3.0.
Rufus-scheduler is a job scheduling (at, in, every, cron) library available as a Ruby gem. It is not meant as a cron replacement, it lives within the Ruby process using it and dies with it.
Why the jump from 3.2.x to 3.3.x? It's because of a mistake I made: I was relying on ENV['TZ']
to get timezoned Time instances. It works fine and cuts the dependency on the tzinfo gem, but when you're working with multiple threads and one is setting ENV['TZ']
to Europe/Helsinki
while another is setting it to America/Houston
, both might end up with Time instances in Houston or Helsinki. Chaos.
This rufus-scheduler 3.3.0 brings back the tzinfo dependency and uses it to support its Rufus::Scheduler::ZoTime
class. Instances of ZoTime quack like if they were Ruby Time instances but keep their zone as an instance of TZInfo::TimeZone
.
Should problems appear after an upgrade to 3.3.0, please fill a clear and detailed issue at https://github.com/jmettraux/rufus-scheduler/issues.
This ENV['TZ']
problem was pointed out (gh-220) by Musha Akinori. Many thanks to him!
A new feature made it into this 3.3.0, it was requested/contributed by Piavka in gh-214. It's a Rufus::Scheduler::Job#trigger_off_schedule
method. It lets you trigger a job, off of its schedule. If, during the off schedule run, the job is started "in schedule", overlap settings kick in. Off-schedule or in-schedule, calls to Job#running?
will return true. It has its uses with repeat jobs.
This release also contains two fixes. One for .parse_to_time
vs Date
instances (gh-216), thanks to Nicolás Satragno. And one for "day 0 cronlines" (gh-221), thanks to Ramon Tayag.
Thanks again.