Herokuのアプリをスタンバイさせないための方法
Herokuにデプロイしたアプリはアクセスがないとスタンバイ(?)になってしまうので、定期的にアクセスさせてスタンバイにさせないための方法。
New Relicをインストールすれば、pingを定期的にする設定ができるけど、そこまでやるのもめんどいのでschedulerを使ったライトな方法を。
taskを追加する
rails g task ping
httpチェックするスクリプトを用意
namespace :ping do
desc "check the heroku"
task :execute => :environment do
require 'net/http'
uri = URI.parse('http://hogehoge.herokuapp.com/')
Net::HTTP.get(uri)
end
end
動作確認
タスクが登録されているか確認
rake -T
実行の確認
rake ping:execute
コミットしてherokuにpushしておく。
schedulerのアドオンを追加する
heroku addons:add scheduler
schedulerを開いて設定する
コマンドからschedulerを開く場合は
heroku addons:open scheduler
登録するコマンドは
rake ping:execute
herokuで事前に動作確認したい場合は
heroku run rake -T
で登録されているか確認して、
heroku run rake ping:execute
で実行してログを確認する。
heroku logs
以上。