私は Doobie を使用しています。私が見つけた例でunsafeRunSync
は、次のように使用しています。
sql"select name from country"
.query[String] // Query0[String]
.to[List] // ConnectionIO[List[String]]
.transact(xa) // IO[List[String]]
.unsafeRunSync // List[String]
.take(5) // List[String]
.foreach(println)
内部では、この関数は次のように実装されています。
final def unsafeRunSync(): A = unsafeRunTimed(Duration.Inf).get
docsで、「この関数はテスト用であることに注意してください。メインラインの本番コードには決して使用しないでください!」と記載されています。unsafeRunSync
この機能を内部で使用する場合、本番環境で使用しても問題ないのでしょうか?
また、そうでない場合、実行にタイムアウトを設定するにはどうすればよいunsafeRunTimed
ですか?