herokuを24時間稼働させる設定

herokuは30分アクセスがないとスリープモードになる


知ってましたか?

herokuに自分のポートフォリオをあげてて、仕事の休憩時間に自分のサイトに入ろうとしたんですよ。


入れないんですよ!!!!


対処法

Heroku Schedularで叩き起こす

Herokuの無料dynoをスリープさせないで24時間稼働させる4つの方法 | Casual Developers Note

この記事を参考にさせていただき実際にやってみました。


ヘロクスケジューラーをインストール

% heroku addons:create scheduler:standard
Creating scheduler:standard on ⬢ アプリ名... free
 To manage scheduled jobs run:
 heroku addons:open scheduler

Created scheduler-reticulated-50611
Use heroku addons:docs scheduler to view documentation

なぜか、クレジットカードの登録はしてありました。

% heroku addons:open scheduler
Opening https://addons-sso.heroku.com/apps/..........

f:id:yukitoku_sw:20200204221752p:plain

こんな画面が開くので、create jobを押します。

f:id:yukitoku_sw:20200204221942p:plain

なんか右端に出てきます。

寝てもらっては困るので、

  • Every 10 minutes

  • curl https://your-herokuapp-xxxxx.herokuapp.com/

  • free

チェックしてもらうことで寝させません。 実行内容は、無料枠で・10分おきに・ルートページにアクセス

これで寝かせません (welldoneは私のアプリ名です)

f:id:yukitoku_sw:20200204222031p:plain

これでsave jobすると

f:id:yukitoku_sw:20200204222757p:plain

寝させない機能が完成します。


heroku注意報

herokuについて勉強した内容を紹介します。

herokuは30分アクセスがないとスリープモードになる(止まる)

全然知らなかった。ちゃんと調べない自分が悪いんですが・・

Dyno sleeping
If an app has a free web dyno, and that dyno receives no web traffic in a 30-minute period, it will sleep.

Free web dynos do not consume free dyno hours while sleeping.

If a sleeping web dyno receives web traffic, it will become active again after a short delay (assuming your account has free dyno hours available).

heroku/free-dyno-hoursより引用

[ ガバガバ翻訳 ]
よく寝るダイノ
無料ダイノは30分アクセスがないと寝ます。
寝てる時は、無料ダイノの無料枠を消費しません
寝てる時にアクセスがあれば、少し遅れて起きます(無料枠が残っていればね)。


全然起きなかったんですけど!
何回試しても起きませんでしたけど!

少し遅れて起きて30分後また寝るってずるくね?


てか、ポートフォリオ なんですけど!
最初アクセス出来なかったらもうアウトでしょ!!


無料枠を消費しませんだと???


herokuは完全無料ではない?

知ってました?


Free dyno hour pool
Personal accounts are given a base of 550 free dyno hours each month. In addition to these base hours, accounts which verify with a credit card will receive an additional 450 hours added to the monthly free dyno quota. This means you can receive a total of 1000 free dyno hours per month, if you verify your account with a credit card.

heroku/free-dyno-hoursより引用


[ ガバガバ翻訳 ]
無料ダイノ時間枠
個人アカウントには毎月550時間分のダイノが与えられます。クレジットカードを登録すると、さらに450時間分あげちゃいます。つまり、クレジットカードを登録すると毎月1,000時間分の無料ダイノがもらえます。


31d * 24h = 744h

256h分余るのだが??結局ただじゃん?


謎システム


Heroku Schedularの闇

大丈夫なのか?

Known issues and alternatives
Scheduler is a free add-on

Scheduler is a free add-on with no guarantee that jobs will execute at their scheduled time, or at all:

・In very rare instances, a job may be skipped.
・In very rare instances, a job may run twice.

heroku/known-issues-and-alternativesより引用

[ ガバガバ翻訳 ]
最初に言っておくが。
スケジューラーは無料のアドオンですからね
スケジューラーは無料のアドオンですから、必ずしも予定時刻に実行されるとは限りませんので
・ごくまれにね、働かないかも。
・ごくまれにね、2連撃しちゃうかも。


ガバガバアドオン!


私みたいにただ、アクセスするだけの設定ならいいが、メールを送信するとか、何かを取得する設定の人は注意が必要かも!


2020/02/04現在の情報です!
定期的に監視してなんかあれば報告します!

では