前回の記事で Web アプリを動かすことができるプラットフォーム、 Heroku の無料プランについて紹介しました。
www.shookuro.com
記事内にもあるとおり、無料プランでは 30 分間アクセスがないと Sleep 状態となり、次回アクセスした際にレスポンスが遅れます。Spring Boot で作ったアプリの体感では、長いときは 30 秒くらい待たされます。
私のように 1 アプリだけを運用しているのであれば、 24 時間稼動させていたとしても、無料枠の 1,000 Dyno時間を超過することも無いので、今回は Sleep 回避の方法を実際にやってみたいと思います。
Heroku Scheduler アドオンのインストール
定期的な処理を Heroku 上で行うには Heroku Scheduler を使用します。
Heroku Scheduler では「1 日 1 回」、「1 時間に 1 回」、「10 分に 1 回」のどれかで、定期的な処理を実行することができます。
コマンドプロンプトを立ち上げて、プロジェクトのフォルダに移動します。「heroku addons:create scheduler:standard」と入力したらインストールの完了です。
C:\Users\yyama>cd C:\workspace\reki-henkan C:\workspace\reki-henkan>heroku addons:create scheduler:standard Creating scheduler:standard on ⬢ reki-henkan... 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 Created scheduler-deep-48142 Use heroku addons:docs scheduler to view documentation
アプリの概要ページに Heroku Scheduler が表示されるようになりました。
これでインストールは完了です。
Heroku Scheduler アドオンの設定
引き続き、設定を行っていきます。
今回は Heroku 上で稼動している Web アプリケーションの URL に 10 分に 1 回アクセスするような設定を行います。
アプリ概要ページの Installed add-ons から、Heroku Scheduler を選択します。先ほどのスクリーンショットの赤枠内です。
Scheduler のページが表示されるので 「Add new job」を選択します。
設定画面が開きます。
10 分間隔で「curl https://reki-henkan.herokuapp.com/」コマンドを発行する場合は以下のように入力します。URL は Heroku 上にデプロイしてあるアプリの URL です。
「save」ボタンをクリックするとトップページに戻り、スケジュールされていることが確認できます。
「heroku logs」コマンドでログを見ると、スケジューラによる実行が確認できます。
2018-05-05T02:16:10.569102+00:00 heroku[scheduler.7366]: Starting process with command `curl https://reki-henkan.herokuapp.com/` 2018-05-05T02:16:11.361611+00:00 heroku[scheduler.7366]: State changed from starting to up ・ ・ ・ 2018-05-05T02:16:12.997361+00:00 heroku[scheduler.7366]: Process exited with status 0 2018-05-05T02:16:13.019901+00:00 heroku[scheduler.7366]: State changed from up to complete
まとめ
Heroku の無料枠で Sleep を回避するために Heroku Scheduler を使用した実例でした。
個人で Web アプリを公開する場合は、ぜひ参考にしてください。

プロフェッショナルのための 実践Heroku入門 プラットフォーム・クラウドを活用したアプリケーション開発と運用 (書籍)
- 作者: 相澤歩,arton,鳥井雪,織田敬子
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2014/09/19
- メディア: 大型本
- この商品を含むブログ (3件) を見る

クラウド開発徹底攻略 (WEB+DB PRESS plus)
- 作者: 菅原元気,磯辺和彦,山口与力,澤登亨彦,内田誠悟,小林明大,石村真吾,相澤歩,柴田博志,伊藤直也,登尾徳誠,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2016/05/13
- メディア: 大型本
- この商品を含むブログを見る

LINE BOTを作ろう! Messaging APIを使ったチャットボットの基礎と利用例
- 作者: 立花翔
- 出版社/メーカー: 翔泳社
- 発売日: 2017/05/12
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る