Help us understand the problem. What is going on with this article?

Herokuへ定期的にアクセスしてスリープさせないアプリ「heroku patroller」を作りました。

More than 5 years have passed since last update.

※ この情報は今は使えません。

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。
こうしておくと別プロジェクトで利用するときもファイルのコピペができて便利。

BASIC認証
https://github.com/yoshioota/heroku-patroller/blob/master/app/controllers/concerns/basic_auth_concern.rb

パンくず
https://github.com/yoshioota/heroku-patroller/blob/master/app/controllers/concerns/simple_breadcrumbs.rb

Deploy to Heroku button とその設定

当アプリのapp.jsonが以下で、addonの追加とrake db:migrateが設定されています。

https://github.com/yoshioota/heroku-patroller/blob/master/app.json

ここを参考に設定しました。

https://devcenter.heroku.com/articles/app-json-schema

使用上の注意

同一URLへは9分間はキャッシュする実装をしていますが、ドメインは考慮していません。
なので同一ドメインで利用する場合はよくよく注意して下さい。
自分が関係するプロジェクトだけに利用するのが良いかと思います。

yoshioota
フリーでプログラマしてます
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした