3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

HerokuAdvent Calendar 2017

Day 14

Heroku で Twitter bot を運用する

Last updated at Posted at 2017-12-13

Heroku で運用している Twitter bot について書きます。

どういう bot か

ソースコード: https://github.com/yono/yonobot

定期的に

  • ランダムに生成した文章のポスト
  • メンションへの返信

をします。

私のツイートのログを基にしてるので、ランダムとはいっても比較的日本語っぽい文章が出てきます。
特に実用性は無くて観葉植物みたいな感じです。

Heroku での運用について

以下の構成で動いています。

これで2年くらい動かしてますがノーメンテで元気に動いてくれてます。
その前は GAE/Python で動かしてましたが料金体系の変更により Ruby で作り直して Heroku に引っ越ししたという経緯があります。

heroku-buildpack-mecab

デフォルトでは mecab gem がビルドできないため。
mecab は発言生成時でなく、発言の元となるツイートを形態素解析するのに使ってます。

(でもよく考えたら Heroku 上では解析処理してないので使わずに済むかもしれません……)

Heroku Scheduler

定期的な発言と返信の実行に使ってます。
返信はもう少しこまめに実行したいですが、10分おきが最短なのでやむなくそうしています。

herokuscheduler.jpeg

mLab MongoDB

発言の元データを置くのに使っています。
PostgreSQL でなく MongoDB を使っているのはレコード数が17万件くらいあって Heroku Postgres の Hobby Dev プランの制限にひっかかるからです。

mongodb.jpeg

まとめ

Heroku で運用している Twitter bot の構成について紹介しました。
イレギュラーっぽいですがこういう使い方もあるということで。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?