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

herokuで運用していたBOTを24時間対応する

More than 3 years have passed since last update.

ついにherokuからFreeプランに変更するか18時間運用にするか、$7払うかというメールが来ました。
お遊びで使っているBOTなこともあり、Process Schedulerを使うことで簡単に2つのBOTを切り替えられそうだったので、2つのアプリで1つのBOTを運用することにしました。

githubのレポジトリ作成

github connectを使って自動デプロイをするので、まずBOT用のgithubレポジトリを作成し、git pushしておいてください。

herokuに2つのアプリを作成

次にheroku上に新しく2つのBOTを作成します。
なおbot1やbot2の場所はアプリ名です。
ここでは、説明のためbo1、bot2と表記します。

$ heroku create bot1
$ heroku create bot2

herokuのフリープランではwebとworkerの2つのdynoが使えます。
どちらでもかまわないと思いますが、今回はworkerを使うので、自分の環境に合わせてProcfileを変更してください。

worker: npm start

その後herokuのページを開き、環境変数の設定を行います。

github connectを使って自動デプロイ

変更するごとに、herokuに2回pushするのは面倒だったのでgit push herooku masterによるデプロイはせずにgithubからの自動デプロイで対処することにします。
herokuのDeployタブを開きApp connected to GitHubから先ほど作成したレポジトリを指定しましょう。これで、githubにpushするごとにherokuに自動にデプロイされます。簡単ですね。
さて、すでにgithubの方にはpushしてしまったので、画面の一番下にManual deployの項目があるので、はじめはここからデプロイしてみます。
Deploy Branchをクリックしてデプロイを実行します。
この作業をもう一つのアプリでも同様に行います。

Process Schedulerを使って指定の時間眠らせる

このままだと同じBOTが並行して動いているだけなので、Process Schedulerを利用して指定の時間眠らせます。
ResourcesタブのAdd-onsフォームからProcess Schedulerを探して、process Schedulerを設定します。

今回はworkerで動かしているのでwebの方は全て0のままで、workerタブの方を設定してみます。
process Schedulerの設定は、2つのアプリの時間が被らないように注意しましょう。

スクリーンショット 2015-08-30 20.21.34.png

この作業ももう一つのアプリでも同様に行います。

注意

混乱するので、タイムゾーンの設定をアプリとProcess Schedulerで合わせた方がいいでしょう。

完成

以上で2つのアプリが交代で1つのbotとして稼働するようになったと思います。
お疲れ様でした。

参考にした記事

akameco
シュレーディンガーの社会人.js
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
ユーザーは見つかりませんでした