ruboty を heroku で動かすついでに web アプリケーションとして扱いたい。 その場しのぎで書いたコードを紹介する。
config.ru
の中で別スレッドを起動して Ruboty#run を走らせた。
# Rackアプリになるように call メソッドを実装
module Ruboty::Web
def call(env)
[200, {'Content-type' => 'text/html'}, ['hello, world']]
end
end
Ruboty::Robot.include(Ruboty::Web)
Thread.new do
robot.run # bot起動
end
run robot # rack アプリを構築
heroku では 1X dynos でもスレッドが 256 個ぐらい起動できるっぽいしきっと大丈夫だろう。いや、わからんけど。
シグナル処理も追加したほうが良い気がするけど、とりあえず気にしない。
そのうちウェブアプリを構築しやすくする方法を考えたい。