是否可以使用 Doobie 并行运行多个查询?
我有以下(伪)查询:
def prepareForQuery(input: String): ConnectionIO[Unit] = ???
val gettAllResults: ConnectionIO[List[(String, BigDecimal)]] = ???
def program(input : String) : ConnectionIO[List[(String, BigDecimal)]] = for{
_ <- prepareForQuery(input)
r <- gettAllResults
} yield r
我尝试的是以下内容:
import doobie._
import doobie.implicits._
import cats.implicits._
val xa = Transactor.fromDataSource[IO](myDataSource)
val result = (program(i1),program(i2)).parMapN{case (a,b) => a ++ b}
val rs = result.transact(xa).unsafeRunSync
但是,没有找到 的 NonEmptyParallel 实例ConnectionIO
。
错误:(107, 54) 找不到参数 p 的隐式值:cats.NonEmptyParallel[doobie.ConnectionIO,F] val result = (program(i1),program(i2)).parMapN{case (a ,b) = > a ++ b}
我是否遗漏了一些显而易见的事情或尝试了一些无法完成的事情?谢谢