An enhancement for Heroku Scheduler + Sidekiq for scheduling jobs at specific times.
Thanks to @MSeneadza for reporting an issue with jobs being rescheduled because of the new code for backfilling jobs in the rake task. This simply reverts the changes that caused the bug and we will revisit whether we should add the backfilling code back in.
@MSeneadza has reported a major bug in v1.1.0 that can cause your scheduled jobs to run twice. 😢
The :at
configuration option is now required. This is required because we can no longer rely only on the last existing run time to determine when the next job will run now that we're backfilling the existing jobs.
If you previously were not setting the :at
option, you will receive a SimpleScheduler::At::InvalidTime
error if you upgrade to v1.1.0 without adding the configuration option to your simple_scheduler.yml file.
Simple Scheduler has been labeled as "production ready" since January 27, 2017:
We've been using Simple Scheduler in production in Simple In/Out since December 13, 2016:
We have received wonderful feedback throughout the last year from the open source community. That feedback has helped us squash some bugs and improve our documentation, making Simple Scheduler more reliable and even easier to use.
We don't have a ton of ideas for what we can do to continue improving Simple Scheduler, but we will definitely continue to support new versions of Sidekiq and Rails.
Thanks for helping to make Simple Scheduler awesome! Now on to the release notes...
If you're using a custom configuration file instead of the default config/simple_scheduler.yml
, you will need to make the following changes:
Set the path to your custom configuration file using the SIMPLE_SCHEDULER_CONFIG
environment variable:
SIMPLE_SCHEDULER_CONFIG=config/simple_scheduler.staging.yml
Update your Heroku Scheduler job to remove passing the config file path to the rake task:
simple_scheduler <= 0.3.4:
rake simple_scheduler[config/simple_scheduler.staging.yml]
simple_scheduler 1.0.0:
rake simple_scheduler
:at
regex to better validate the value #22:queue_ahead
and :tz
options in README #23scheduled_time
passed to jobs #25Breaking changes from v0.2.*
:
By improving the regex pattern used to parse the :at
time in #22, you may now get a SimpleScheduler::At::InvalidTime
error when you previously would not see an error. This is preferred because an invalid time would possibly schedule your jobs at unwanted times rather than letting you know that the time couldn't be parsed accurately.