[Heroku] Heroku Schedulerを使ってみる

https://addons.heroku.com/scheduler
https://devcenter.heroku.com/articles/scheduler


アプリにSchedulerアドオンを追加

$ heroku addons:add scheduler:standard --app アプリ名
----> Adding scheduler:standard to tbmngdev... done, v19 (free)
      This add-on consumes dyno hours, which could impact your monthly bill. To learn more:
      http://devcenter.heroku.com/addons_with_dyno_hour_usage
      To manage scheduled jobs run:
      heroku addons:open scheduler

アプリにSchedulerアドオンが追加される

scheduler.rake

テスト用にscheduler.rakeを作成してみる。

lib/tasks/scheduler.rake
desc "Task Test"
task :task01 => :environment do
    puts "Task01 start..."



    puts "Task01 done."
end

コマンドラインで実行してみる

scheduler.rakeをherokuのgitにpushし、コマンドラインで実行してみる。

$ heroku run rake task01
Running rake task01 attached to terminal... up, run.1
Task01 start...
Task01 done.

Heroku Schedulerに登録

Heroku Schedulerのrake task01を10分毎に実行するように設定する。

実行された

Herokuのログを確認するとTask01が実行されていた。

2012-07-25T07:06:21+00:00 heroku[run.1]: Starting process with command `bundle exec rake task01`
2012-07-25T07:06:22+00:00 heroku[run.1]: State changed from starting to up
2012-07-25T07:06:27+00:00 app[run.1]: Task01 start...
2012-07-25T07:06:27+00:00 app[run.1]: Task01 done.
2012-07-25T07:06:28+00:00 heroku[run.1]: Process exited with status 0
2012-07-25T07:06:28+00:00 heroku[run.1]: State changed from up to complete


Heroku Schedulerを確認すると、LAST RUNの日時か更新されていた。