Herokuでプログラムの定期実行 or 無料dynoのスリープ回避
はじめに
Herokuでプログラムを定期的に実行したくないですか?
または、無料dynoのスリープを回避し起動を維持したくないですか?
add-onの1つ「Heroku Scheduler」を使った解決策を紹介します。
目次
1, add-onの追加
まず、下記にアクセスして「Heroku Scheduler」をインストールします。
ログインした後にページ右側の「Install Heroku Scheduler」をクリックしてください。
次にページ中央の「App to provision to」に自分のアプリ名を入力し、
アプリが見つかったら「Provision add-on」をクリックしてください。
アプリを管理するHerokuのResorcesタブを開くと追加されたadd-onが確認できます。
2, プログラムの定期実行
追加したadd-on「Heroku Scheduler」に実行コマンドを登録します。
まず、アプリを管理するHerokuのページから「Heroku Scheduler」にアクセスしてください。
※ OverviewやResourcesタブのページ内リンクから飛べます。
https://dashboard.heroku.com/apps/[アプリ名]/scheduler
※ [アプリ名]を適宜修正すると上記URLからも飛べます。
次に、ページ右側の「Add job」をクリックしてしてください。
下図のようなジョブ登録画面が現れるので1→4の順に作業します。
1, 定期実行の間隔を選びます。(10分毎、1時間毎、毎日)
2, 定期実行時間を選びます。(※ 日本時間はUTC+9時間)
3, 実行コマンドを入力します。
例) modelフォルダー内のmain.pyを実行したい場合
python ./model/main.py
4, 「Save Job」をクリックしたら完了です。
3, 無料dynoのスリープ回避
スリープを回避する方法は、定期的(30分以内)にアプリのwebページにアクセスすることです。
その実行コマンドを「Heroku Scheduler」に登録します。
まず、アプリを管理するHerokuのページから「Heroku Scheduler」にアクセスしてください。
※ OverviewやResourcesタブのページ内リンクから飛べます。
https://dashboard.heroku.com/apps/[アプリ名]/scheduler
※ [アプリ名]を適宜修正すると上記URLからも飛べます。
次に、ページ右側の「Add job」をクリックしてしてください。
下図のようなジョブ登録画面が現れるので1→3の順に作業します。
1, 定期実行の間隔「Every 10 minutes」を選びます。
2, 自分のアプリにアクセスする実行コマンドを入力します。
curl http://[アプリ名].herokuapp.com/
※ 自分のアプリのURLになるように、[アプリ名]を適宜修正してください。
3, 「Save Job」をクリックしたら完了です。
おわりに
Herokuでプログラムを定期実行、または無料dynoのスリープを回避し起動し続ける方法を紹介しました。
いずれもadd-onの1つ「Heroku Scheduler」を入れて実行コマンドを登録するだけです。
快適なHerokuライフを楽しむため、役立てて頂ければ幸いです。