※ この情報は今は使えません。
Herokuの無料版は1日に6時間は必ずスリープするようになりました。
参考
http://sideci.hatenablog.com/entry/2015/05/08/094043
なのであー昔はこんなことができたんだなーとか、
ポーリングってこうやってやるんだなーとか、
Railsの勉強位の認識で見ていただければと思います。
はじめに
HerokuのRailsアプリは一定時間アクセスが無いとスリープしてしまいます(確か30分)。
そこでスリープをさせないために定期的に登録したURLにアクセスするWebアプリを作りました。
ソースコードのURLはこちら↓で
https://github.com/yoshioota/heroku-patroller
このページのDeploy to Herokuボタンを押していただければあなたのHeroku Appliとしてデプロイが可能となってます。
http://www.eigotype.com/ で使うために作りました!
英語を学習している方はぜひこちらもお試しいただければと、
※ New Relic のping機能でも同じことはできるんですけどね、つい。
開発環境
rails 4.2.0
ruby 2.2.1
開発用の定番gem
以下の3つは特におすすめで、これが無いと開発効率が90%はダウンします。
ぜひ皆さんも使ってみていただければと思います。
better_errors, binding_of_caller
rails-footnotes
guard-livereload
ソースコードの説明
app/utils 系と app/services 系フォルダを作成し、そこの下に対象ソースを置く
- app/utils/*** 以下
いわゆる便利系クラスでコピれば他でも使えそうなクラスを置いてあります。
- app/services/*** 以下
いわゆるサービスクラス系を置いてあります。
例えば複数のモデルが関係して、どちらのモデルに置くか迷ったりしたものはserviceとして切り出し、とりあえずここへ置いておくのがマイブームです。
パンくずとベーシック認証
concern にて切り出してapplication_controller.rbにてinclude。
こうしておくと別プロジェクトで利用するときもファイルのコピペができて便利。
Deploy to Heroku button とその設定
当アプリのapp.jsonが以下で、addonの追加とrake db:migrateが設定されています。
ここを参考に設定しました。
使用上の注意
同一URLへは9分間はキャッシュする実装をしていますが、ドメインは考慮していません。
なので同一ドメインで利用する場合はよくよく注意して下さい。
自分が関係するプロジェクトだけに利用するのが良いかと思います。