BackgrounDRbを使ってみた(第8回Rails勉強会@東京ログ)

第8回Rails勉強会@東京において、この前調べておいた記事を実際にやってみた。
http://d.hatena.ne.jp/walf443/20060720/1153400540

動かす際に色々とハマりどころがあったようなのでうまくやるコツのようなものを書いておく。

rakeのタスクは基本的にproduction環境のときに使うコマンドが多い。BackgrounDRbのrakeにインストールされるタスクは基本的にproduction用。development環境の際は、script/backgroundrb/(start|stop)を使う。rakeのタスクはデーモン化し、scriptを使うとデーモン化しない。デーモン化するとlogを見る以外には反応しないのでプロセスをうっかり2・3個立ち上げたりするとうまくいかなくなってしまう。

workerを編集したら実行する前にbackgroundrbサーバーを再起動させること。RailsWEBrickにやっているみたいなトリック(開発時には再起動しなくても良いようにする)がBackgrounDRbサーバーにもできないかなとか思ったりした。

DRbの使い方を詳しく知らなくてもタスクに対してWorkerクラスにdo_work(args)メソッドを一つ書いておけば良いというのは便利だと思いました。

最近のアップデートだと、期限付きでWorkerを生成できるようになったようです。
http://brainspl.at/articles/2006/07/02/backgroundrb-updated