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が動作しはじめます。
次はワーカーを登録します。
いったんここまで。