herokuは1時間アクセスが無いとDynoが寝る

たとえsocket.ioをつなぎっぱなしにして頻繁に通信していても寝てしまうのでこうして20分おきに自分で自分にHEADリクエストを送って寝ないようにしてる

request = require 'request'

module.exports = (app) ->

return unless /^https?:\/\/.+/.test process.env.HEROKU_URL

setInterval ->
console.log 'ping'
url = "#{process.env.HEROKU_URL}?time=#{Date.now()}"
request.head url, (err, res) ->
if !err and res.statusCode is 200
console.log 'pong'
, 60 * 1000 * 20 # 20 min


環境変数HEROKU_URLに自分自身のURLを設定して使う

% heroku config:set HEROKU_URL=https://(APP_NAME).herokuapp.com