rufus-scheduler 3.3.0 released
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
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
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.
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.