どのdelayed_jobを使うべき?

なんだか変な時間に起きちゃったので、ちょっとメモ。

gemで一発で入るものはこれで、最新は1.8.4
http://gems.rubyforge.org/gems/delayed_job
サイトはここ
http://github.com/collectiveidea/delayed_job

こちらは、capistranoのレシピもあってデーモンで動かすことができる(らしい)んだけど、どうもうまく動かなかった。起動してもすぐに終了してしまう。
調べてみたらworkerのプロセスがRAILS_ENV=developmentで動いていた。productionを指定しているのに。

で、仕方なく最もメジャーそうな
http://github.com/tobi/delayed_job/
を使う。こちらは1.7.0らしい。
こっちは、デーモンのレシピはないのでrakeで動かすしかない。capistranoで使いにくいので、nohupで起動して、無理やりkillするタスクをconfig/deploy.rbに追加。うーん、気持ち悪い。

これらの関係をgithubのnetworkで見たかったんだけど、130もブランチがあるのでなかなか表示されない。どれを使うべきかわからんっす。

delayed_jobを使う理由

backgrounrbよりも使い易かったし、cron的な処理がひとまず不要だったため。
send_laterやsend_at(1.8.4)で、大抵のことは事足りるし、面倒な処理もちょろっとクラスを用意してあげるだけでいい。backgroundrbみたいにMiddleManとか訳のわからない単語がソースに入らないのが素敵。YAMLでオブジェクトをdumpしてDBに保存する仕組みもわかりやすいし。


あと、以前も紹介したリンクだけど、自分でも探しちゃったので、再度ここに書いておきます。
http://w.koshigoe.jp/study/?%5BBackgroundJob%5D%5BRuby%5D+Resque+%A4%C8%A4%CF