heroku でアイドリングになるのを回避する
アイドリング状態
Dynos and the Dyno Manager | Heroku Dev Center
heroku でのアイドリング状態とは1時間動いていないとなるスリープみたいなもの。
この状態でリクエストが来ると立ち上がりまで20秒位かかるので重いと勘違いされるかも。
アイドリング状態かは以下のコマンドで確認できる。
$ heroku ps Process State Command ------- ------------ ------------------------------------ web.1 idle for 23h bundle exec thin -p $PORT -e $RACK..
「idle for 23h」は 23時間アイドリング だよ、とのこと。
ぐぐってみるといろいろ回避方法(New Relic, Rails 内のスケジューラ)が載っていたが失敗。cron で ping を叩くのもありみたいだけど、 cron ができるレンタルサーバがないのでやっていない。最終的に成功したのが「pingdom」を利用することだ。
pingdom を利用する
pingdom は Web サイトのモニタリングしてくれるサービスである。無料版では1サイト利用できる。
もし、落ちていたらメールやツイッターで知らせてくれる。
登録は簡単。名前とメールアドレスを入力して届いたメールのパスワードでログインする。
そして、モニタリングするサイトの URL やモニタリング方法などを設定するだけ。簡単!
ちなみに、アクティブな状態は…
$ heroku ps Process State Command ------- --------- ------------------------------------ web.1 up for 7h bundle exec thin start -R config.r..
「up for 7h」でアクティブであることを確認できる。