Whenever is a Ruby gem that provides a nicer syntax for writing and deploying cron jobs.
Leading zeros are important for whenever if you use the 24-hours format!
This schedule.rb
:
every 1.day, at: '3:00', roles: [:primary_cron] do
runner 'Scheduler.delay.do_things'
end
will lead to this crontab entry (crontab -l
) with the default configuration:
0 15 * * * /bin/bash -l -c 'cd /var/www/my-project/releases/20180607182518 && bin/rails runner -e production '\''Scheduler.delay.do_things'\'''
Which would run on 3pm instead of 3am.
Using the leading zero will lead to the expected behaviour:
schedule.rb
every 1.day, at: '03:00', roles: [:primary_cron] do
runner 'Scheduler.delay.do_things'
end
crontab -l
:
0 3 * * * /bin/bash -l -c 'cd /var/www/my-project/releases/20180608095252 && bin/rails runner -e staging '\''Scheduler.delay.do_things'\'''
The reason for the described behavior is that the underlying datetime parsing gem "chronic" defaults to a 12 hour clock Show archive.org snapshot . You could configure it to a 24 hour clock Show archive.org snapshot to stop worrying about leading zeros:
set :chronic_options, hours24: true
Another interesting chronic option is "week_start", which defaults to :sunday
.
Posted by Judith Roth to makandra dev (2018-06-08 10:01)