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

以上。