UTALI

みんなの役に立つ情報をどんどん公開していきます

【Heroku】Heroku Schedulerでcronのように定期タスクを実行する

f:id:mochizuki_p:20170627184635p:plain

Herokuではユーザーはcronを使うことはできませんが、その代わりにHeroku Schedulerという専用のアドオンによって、定期的なタスクを実行することが可能です。

基本的には無料で使用することができますが、利用しているアプリが無料枠を超過した場合は課金の対象になるので注意してください

Heroku Schedulerでは、以下のような特徴があります。

  • 無料
  • 一日、あるいは一時間単位で、0,10,20,30,40,50分で指定可能
  • 特定のコマンドを実行できる。

導入

すでにHerokuアプリを作成、設定済みのディレクトリで、以下のコマンドを実行します。

heroku addons:create scheduler:standard

すると以下のようにHeroku Schedulerがアドオンとして追加されます。コマンドライン上でタスクの設定をすることも可能ですが、今回はHerokuのホーム画面から設定します。

Personal appsの画面から設定したアプリを選択して、

f:id:mochizuki_p:20170627184757p:plain

Installed add-ons から Heroku Schedulerをクリックします。

f:id:mochizuki_p:20170627184813p:plain

するとこのような設定画面が出てくるので、実行したいコマンドを入力欄に入れて、

f:id:mochizuki_p:20170627184846p:plain

実行したい間隔を指定します。

f:id:mochizuki_p:20170627184908p:plain

こうすれば、設定は完了です。あとは自動かつ定期的に指定したコマンドを実行してくれます。

もし追加でタスクを追加したい場合は、Add new jobをクリックすれば同じように設定可能です。

f:id:mochizuki_p:20170627185007p:plain

注意点

注意点として1つあります。

それは実行されるコマンドのパスで、基本的にはホームディレクトリの相対パスで指定されます。