BackgrounDRbでワーカーの自動起動を制御するメソッド

set_no_auto_load

ワーカーを作ってBackgrounDRbサーバを起動すると基本的にワーカーが自動的に起動して待機した状態になる。

必要がないのにずっとアイドリングしているのはリソースの無駄だ。
あるいは開発中のワーカーが勝手に起動してしまうのは邪魔だ。

そんなことが気になる場合にはワーカーのコード内でset_no_auto_loadを引数trueで呼び出す。
するとワーカーが勝手に起動しない。

class FooWorker < BackgrounDRb::MetaWorker
  set_worker_name :foo_worker
  set_no_auto_load true

  ...

これをtrueにしたりfalseにしたりしつつ、script/consoleなどから

MiddleMan.all_worker_info

で確認するとワーカーが起動していたりしていなかったりする様が確認できる。

ちなみに手動で新しいワーカーを起動するには以下のコードで。

MiddleMan.new_worker(:worker => :foo_worker)

new_workerの返値はworkerじゃないので注意。
起動したworkerを取得するにはMiddleMan.workerを使わないといけない。

参考