二足歩行への一歩

技術者のハイハイの記録

rails sidekiqでバックグラウンドジョブ管理①

railsでジョブ管理を行いたかったため、 sidekiqを使ってみました。

参照 http://railscasts.com/episodes/366-sidekiq?language=ja&view=asciicast

こちらが本家 https://github.com/mperham/sidekiq/wiki

本家のHOMEにはこのように書いてあります。


It is very efficient because it is multi-threaded. Instead of using 20 processes, you just have one process with 20 threads. Yes, you will see a big improvement, even with Ruby 1.9's GIL.


訳: ハイ!エンジニアのみんなこんにちは。今日は僕が作ったとっておきのGEMを紹介するぜ! こいつがどんなものか知りたいかい!?君はとっても欲しがりさんだね。言いだろう教えてあげるよ! これはマルチスレッドでとっても効果的なんだ。 20のプロセスのかわりに、20スレッドの、たったひとつの、たったひとつの、たっっっったひとつのプロセスができるだけなんだよ!
こいつはとっても大きな改善さ!ruby1.9のGIL(グローバルインタプリタロックの略なんだぜ!こいつのせいでシリアライズされてたんだ)でもね。

どうしてこんなにもノリノリなリリースが出せるのか日本人の私にはわかりませんが、
これがきっとあちらのやり方なのでしょう。

例によってまずは書いてある通りに。

Gemfileに

gem 'sidekiq'

を記載して

\$ bundle install

を実行します。
これでgemがインストールされました。

また、sidekiqはredis(詳細はこちら:http://redis.io/ )
を使っているため、redisもインストールします。
MacOSXの場合はHomebrewを使って、

\$ brew install redis \$ redis-server /usr/local/etc/redis.conf

で、デフォルトポート6379でredisが動作しはじめます。

次はワーカーを登録します。

いったんここまで。