"Whenever" gem running cron jobs on Heroku

You need to add Heroku Scheduler addon.

You can add it directly from your dashboard or using following commands:

  1. install the add-on:

    heroku addons:create scheduler:standard
    
  2. Create a rake task in lib/tasks

    # lib/tasks/scheduler.rake
    task :send_reminders => :environment do
      User.send_reminders
    end
    
  3. Schedule job

    • Visit Heroku Dashboard
    • Open your app
    • Select Scheduler from add-ons list
    • Click Add Job, enter a task and select frequency.

      e.g. Add rake send_reminders, select "Daily" and "00:00" to send reminders every day at midnight.

Heroku add cron task


Short answer: use the scheduler add-on: http://addons.heroku.com/scheduler

Long answer: When you do heroku run, we

  1. spin up a dyno
  2. put your code on it
  3. execute your command, wait for it to finish
  4. throw the dyno away

Any changes you made to crontab would be immediately thrown away. Everything is ephemeral, you cannot edit files on heroku, just push new code.