Cream-Kuchen

Herokuでプログラムの定期実行 or 無料dynoのスリープ回避

はじめに

Herokuでプログラムを定期的に実行したくないですか?

または、無料dynoのスリープを回避し起動を維持したくないですか?

add-onの1つ「Heroku Scheduler」を使った解決策を紹介します。

目次


1, add-onの追加

まず、下記にアクセスして「Heroku Scheduler」をインストールします。

elements.heroku.com



ログインした後にページ右側の「Install Heroku Scheduler」をクリックしてください。

f:id:Cream-Kuchen:20200628120757p:plain


次にページ中央の「App to provision to」に自分のアプリ名を入力し、

アプリが見つかったら「Provision add-on」をクリックしてください。

f:id:Cream-Kuchen:20200628121600p:plain


アプリを管理するHerokuのResorcesタブを開くと追加されたadd-onが確認できます。

f:id:Cream-Kuchen:20200628122310p:plain


2, プログラムの定期実行

追加したadd-on「Heroku Scheduler」に実行コマンドを登録します。

まず、アプリを管理するHerokuのページから「Heroku Scheduler」にアクセスしてください。
※ OverviewやResourcesタブのページ内リンクから飛べます。

https://dashboard.heroku.com/apps/[アプリ名]/scheduler

※ [アプリ名]を適宜修正すると上記URLからも飛べます。


次に、ページ右側の「Add job」をクリックしてしてください。

f:id:Cream-Kuchen:20200628123200p:plain


下図のようなジョブ登録画面が現れるので14の順に作業します。

f:id:Cream-Kuchen:20200628123947p:plain

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」をクリックしてしてください。

f:id:Cream-Kuchen:20200628123200p:plain


下図のようなジョブ登録画面が現れるので13の順に作業します。

f:id:Cream-Kuchen:20200628125122p:plain

1, 定期実行の間隔「Every 10 minutes」を選びます。

2, 自分のアプリにアクセスする実行コマンドを入力します。

curl http://[アプリ名].herokuapp.com/

※ 自分のアプリのURLになるように、[アプリ名]を適宜修正してください。

3, 「Save Job」をクリックしたら完了です。


おわりに

Herokuでプログラムを定期実行、または無料dynoのスリープを回避し起動し続ける方法を紹介しました。

いずれもadd-onの1つ「Heroku Scheduler」を入れて実行コマンドを登録するだけです。

快適なHerokuライフを楽しむため、役立てて頂ければ幸いです。