kakts-log

programming について調べたことを整理していきます

hubot-heroku-keepaliveの導入

 前回のエントリで、hubotをherokuの無料dynoへデプロイさせ、slackでのbotの運用を始める事ができたのですが、しばらくほっておくとherokuインスタンスが停止している状態になっていました。
調べたところ、herokuの無料dynoの仕様が以前と変わっており、以下の2点の制限が課せられるようになっていました。
  1. アクセスが30分間無い場合はスリープする
  2. 1日のうち、6時間はスリープしなければならない
https://www.heroku.com/pricing

ということなので、hubotをheroku上で無料で運用させるためには、30分以内に定期的にdynoへアクセスし、hubotをスリープさせずに動かし続ける仕組みが必要でした。

hubot-heroku-keepaliveをつかったdynoの定期アクセス
この上記の問題を解決するために、hubot-heroku-keepalive(https://github.com/hubot-scripts/hubot-heroku-keepalive)
というパッケージが公開されているので、これをhubotのプロジェクトに導入していきます。
hubot-heroku-keepaliveを導入する事で、指定した時刻にスリープ、起動させることができ、さらには指定した間隔でhubotに対してpingを送ることができます。

hubot-heroku-keepaliveの導入方法
導入方法はものすごく簡単です。
パッケージをインストールし、external-script.jsonへパッケージ名を追記します。


ソースの修正はこれだけで、あとはherokuのconfigにスリープ、起動時間、インターバルを設定していきます。
00:00にスリープし、06:00に起動させ、5分おきにpingを送る場合は以下の設定でいけます
設定後、ログを確認するとちゃんと5分おきにpingを送っているのを確認できたので、これで完了です。