HerokuでHubotを指定の時間に寝かせる
Heroku料金体系
Herokuの料金体系が変わり、18h/Dayしか動かせなくなったのでオレオレHubotが24時間稼働できなくなった。
Heroku公式によると無料プランは以下のような仕様らしい。
30分間活動がないとSleepする
1日、6時間はSleep状態にならなければいけない
ドメインは設定できるZO!
これにより、Hubotが時間によって動いたり動かなくなったりして使い物にならなくなった。
解決策
解決策としては以下のものを考えてみた。
VPSで運用するのがいいんだろうけど久しくメンテナンスしてなくてすぐにできなそうだし、AWS S3ちょっと触ってみたけどめちゃんこ重くてしかも課金よくわからんくてコワイし、Herokuで工夫する方法を探すことにした。
工夫の方法としてはHubotを使わない時間にSleepさせるというのを考え、プログラム組むの嫌すぎていろいろ探してたらProcess Schedulerというのを見つけたので使用する。
Process Scheduler
これはHerokuのアドオンの一種で、コマンドラインからでもHerokuのDashboardからでも追加することができる。
今回はGUIで追加したので方法を書いていく。
Dashboardでアドオンを追加
Dashboardにアクセス!
該当するアプリケーションを選択し、Add-ons
横のEdit
ボタンをクリック。
そこで『Process Scheduler』を検索し、クリックすると追加される。
Process Schedulerで設定
追加した後、『Process Scheduler』をクリックすると設定画面に行くことができる。
ここで羅列されてる数字を0にすることでその時間帯にプログラムをスリープすることができる。
設定は一週間一時間ごとに行うことができたので、毎日朝2:00~7:59の間はスリープするように設定した。
こんな感じ
これでHubotが朝の時間に勝手に寝て、それ以外の時間に動くようになる!ヤッタネ!
最後に
ちなみにこのProcess Scheduler。他にも使わない時間帯が存在するアプリケーションに適用することで料金の節約をする等の使い方が本来正しそうです。
画面の下の方にも、「これくらいのお値段節約になってますよー!」というのが出ているので、課金されてる方は使ってみるとよいのではないでしょうか。