はじめに
先日、HTML,CSS,Javascript,Ruby,RubyonRailsを使った簡単なアプリケーションを作成し、Herokuへデプロイしました
自分でもアプリを使っており、毎日1〜2回webページを開こうとすると毎回読み込みがものすごく遅い。。。
待つときは10数秒待つようなこともありました
そこで、読み込みが遅い原因とその解決方法についてまとめました
環境
ruby 2.6.5
rails 6.0.3.4
herokuは無料版認証済みのアカウントを使用
読み込みが遅い理由
読み込みが遅い理由はwebサーバーがアクセスの度に起動するため、起動時間がかかっているのが原因のようでした
heroku無料版では、30分ごとに使っていなければwebサーバーが停止します(スリープ状態)
そのため、時間を開けてアクセスするとその度にwebサーバーが起動するため、webサーバーが立ち上がるまでの時間が読み込みが遅いと感じるようです
対策
30分ごとにサーバーが停止するなら30分以内に毎回アプリを起動すればいいじゃない!
ということで、herokuにスケジューラというアドオンを追加します
アドオンとはソフトウェアに新たな機能を追加するプログラムのことです
https://qiita.com/kyabetsuda/items/391044601a113f73667d
こちらの記事を参考に10分おきに自分のwebページへアクセスし、webサーバーがスリープしないよう設定しました
curlコマンドというものがでてきましたが
curlコマンドはサーバへ、またはサーバーからデータを転送を行うコマンドとのこと。
curl URL
でURLのwebページをHTTPリクエストのGETメソッドで取得するという記述になります
これをスケジューラに登録したので、10分ごとに自分のアプリケーションのデータを取得しに行ってくれるため、サーバーが起きている状態になります
意外と簡単に対策できるので、自作アプリをherokuにデプロイされている方は是非お試しください!