A Little Each Day

note to self

Herokuでアプリをスリープさせずに24時間起動する

こんにちは。本日はHerokuでアプリを24時間スリープさせずに起動する方法です。

Herokuの無料枠内だと30分アクセスがない場合、自動でスリープする仕様になっています。

今回はadd-onを使って24時間起動するアプリを設定していきます。

前提

すでにherokuに登録していて、heroku toolbeltをインストールしているとします。

もしまだな人は過去記事を参照してください。

blog.otsukasatoshi.com


そして大切なのはクレジットカードかデビットカードを持っていることです。

herokuでは無料プランである程度までは使えますが、無料枠をこえてしまうと、その分請求がきます。(もちろん簡単なアプリを一つデプロイするだけならお金は請求されないので安心してください。)

add-onを使用する場合やプラン変更する場合はクレジットカードが必須なので、忘れずに登録しておきましょう。


heroku schedulerのインストール

まずはheroku schedulerというadd-onをインストールしましょう。

$ heroku addons:create scheduler:standard


このadd-onは一定の時間になったら、自分が設定したタスクを実行してくれる便利なやつです。無償です。


タスクを書く

heroku schedulerをインストールできたら、このadd-onを開いてみましょう。

herokuにログインしてホーム画面から管理しているアプリをタップして、アプリの管理画面からインストールされている各add-onが設定できるので、Heroku Schedulerをクリックします。

f:id:chi_kun:20170622152534p:plain


または、コマンドラインから開くこともできます。

$ heroku addons:open scheduler


heroku schedulerを開いて、「Add new job」を押すと、以下のようなタスクを登録する画面が出ます。タスクの設定や時間の設定ができます。

f:id:chi_kun:20170622152925p:plain


「rake do_something」という部分にスリープさせたくないアプリのheroku上のURLを入力します。

$ curl https://hogehoge.herokuapp.com/


DYNO SIZEは無料枠なのでFreeでOKです。

FREQUENCYはどのタイミングでタスクを走らせるかの設定です。

・Daily(1日毎)
・Hourly(1時間毎)
・Every 10 minutes(10分毎)


無料枠だと30分毎にアプリにアクセスがないと自動的にスリープしてしまうので、「Every 10 minutes」を選びましょう。


これでherokuアプリが24時間スリープせずに起動することができました。



本日は以上です。