This post is a compliment to my Heroku Scheduler tutorial. By default, Heroku’s Scheduler addon only lets you run commands every 10 minutes, every hour, or daily. If you want to run Heroku Scheduler weekly, you can use this post.
After you’ve opened up Heroku Scheduler with heroku addons:open scheduler, create a new job. Set Schedule to “Every day at…” and set Run Command to one of the following, depending on which day you’d like your command to run:
if [ "$(date +%u)" = 1 ]; then YOURCOMMAND; fi # Monday if [ "$(date +%u)" = 2 ]; then YOURCOMMAND; fi # Tuesday if [ "$(date +%u)" = 3 ]; then YOURCOMMAND; fi # Wednesday if [ "$(date +%u)" = 4 ]; then YOURCOMMAND; fi # Thursday if [ "$(date +%u)" = 5 ]; then YOURCOMMAND; fi # Friday if [ "$(date +%u)" = 6 ]; then YOURCOMMAND; fi # Saturday if [ "$(date +%u)" = 7 ]; then YOURCOMMAND; fi # Sunday
Run a task every Monday:
if [ "$(date +%u)" = 1 ]; then MY_COMMAND; fi
Run a task every 1st day in a month:
if [ "$(date +%d)" = 01 ]; then MY_COMMAND; fi
You could also run a job every year on December 24th:
if [ "$(date +%m)" = 12 ] && [ "$(date +%d)" = 24 ]; then MY_COMMAND; fi
Remember to replace YOURCOMMAND with your command – in my case, this is rake taskname, but yours might be something like node task.js.
All we’re doing is performing a conditional check to see if it’s the right day before running our command.
