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