heroku でプロセスを時間帯で増やしたり減らしたりを人手を介さずにやりたくて heroku を色々調べていたんだけど、以下のコードでプロセスの数を変更できるみたい
client = Heroku::Client.new(*Heroku::Auth.read_credentials)
client.ps_scale(app_name, :type => process_name, :qty => process_count)
ちなみに Heroku::Auth.read_credentials
は HEROKU_APU_KEY
という環境変数が設定されていればそれを使い、無い場合は .netrc に書いてある heroku のログイン情報を使う。なので、heroku にデプロイしているアプリ自身が heroku gem を使うような場合は heroku config で API キーを設定するのが良いんだろうね。
で、この辺の情報を使って作ったのが heroku_scale_scheduler なのであった。今のところ Rails でしか使うつもりが無いので railtie とかにがっつり依存してるけど、使い方は
rails g heroku_scale_scheduler:install
を実行heroku:scale:ps
を実行するようにする一応、bomboo スタックにも対応していてその時は dynos や workers という決めうちのプロセス名を記載して使う。まだ実験的な物だけど、興味のある人は使ってみてください。