ObjectPool for Ruby
ObjectPool
ObjectPoolはオブジェクトやリソースを一定数プールしておきそれらを複数のオブジェクトからシェアして使うもので>す。ObjectPool#createメソッドでオブジェクトを生成するコードを記述しておき、使用者側はObjectPool#getメソッドでオブジェクトを取得し、ObjectPool#releaseメソッドで解放します。
API
Class Method
ObjectPool.instance- ObjectPoolを返します。Singletonです。
Instance Method
ObjectPool#create- オブジェクトを生成します。まずはこのメソッドをオーバーライドしてください。
ObjectPool#get- オブジェクトを取得します。全てのオブジェクトが使用中の場合はtimeoutになるまで待ち、それでも駄目な場合はTimeoutErrorを起こします。
ObjectPool#release(object)- オブジェクトをリリー オブジェクトをリリースします。
ObjectPool#max=(size)ObjectPool#max- プーリングするオブジェクトの最大値を指定・参照します。デフォルトは10です。
ObjectPool#timeout=(sec)ObjectPool#timeout- オブジェクトが全て使用中の場合にインスタンスを返す待ち時間を指定・参照します。デフォルトはnil(無限大)です。
ObjectPool#wait=(sec)ObjectPool#wait- ループを呼び出す間隔を指定・参照します。デフォルトは1秒です。
ObjectPool#out=(out)ObjectPool#out- エラーメッセージの出力先を指定・参照します($stdout, $stderr)。
キーワード:
参照:[よたらぼ 保管庫]