FS2でオブジェクト プール パターンを実装する最良の方法を確認しようとしています。
次のMyPrinter
定義があるとします。
class MyPrinter {
import scala.util.Random.nextInt
Thread.sleep(5000 + nextInt(1000))
def doStuff(s: String): Unit = {
println(s)
Thread.sleep(1000 + nextInt(1000))
}
def releaseResources(): Unit =
println("Releasing resources")
}
プリンターStream[Task, MyPrinter]
のプールでバッキングを作成する最良の方法は何ですか? n
ストリームが終了したら、すべての基になるリソースを を呼び出して適切に解放する必要がありますreleaseResources
。
おまけの質問: プリンターが何らかの理由で終了した場合、プールに新しいプリンターを作成することは可能ですか?