久々にRailsプラグインの紹介です。
BackgroundFu
は、Jacek Becela氏による、時間がかかる処理をバックグラウンドプロセスで実行するためのRailsプラグインです。
使い方ですが、まずはインストール。
1 % svn export https://svn.trix.pl/public/background_fu vendor/plugins/background_fu
続いて、各種ファイルを生成するGeneratorを起動します。
1 % ./script/generate background
バックグラウンド処理の情報を管理するテーブルを作成するためのmigration
ファイルが生成されるので、マイグレーションを実行します。
1 % rake db:migrate
これでひとまず準備完了。あとは、lib/workers
の下に生成されている
exampleファイルや
README
を参考にしながら、Workerクラスを作ります。
Workerクラスの例
1 class ExampleWorker
2 def add(a, b)
3 a + b
4 end
5 end
このWorkerを呼び出す場合は、以下のようにします。
1 Job.enqueue!(ExampleWorker, :add, 1, 2)
単純に時間がかかる処理を裏で実行したいだけならこれでOKです。
簡単ですね。
必要であれば、JobのIDを使ってもうちょっと複雑な処理も実行可能です。
Workerプロセスの起動は、以下のコマンドで行います。
1 % ./script/daemons start
stop
で停止、restart
で再起動です。RAILS_ENVを指定する場合は、
1 % RAILS_ENV=production ./script/daemons start
こんな感じですね。デフォルトではdevelopment
環境になります。
See Also