5

ZIO不依赖于Cats,因此它有自己的方法来执行sequence操作: ZIO.sequenceParZIO.sequence.

我尝试使用sequenceinterop 提供的Cats,它的工作方式与以下相同ZIO.sequence

import zio._
import zio.interop.catz._
import cats.implicits._ 

val t1: Task[Int] =  ???
val t2: Task[Int] =  ???
val t3: Task[Int] =  ???

val seq = List(t1,t2,t3).sequence // <-- t1,t2,t3 are executed sequentially 

(new DefaultRuntime {}).unsafeRun(seq)

我可以让ZIOTreat sequenceas ZIO.sequencePar,所以我可以并行运行任务吗?

似乎ZIO需要一些并行Traverse的实现Cats,但我找不到。

这是我的依赖项:

libraryDependencies += "dev.zio" %% "zio" % "1.0.0-RC10-1"
libraryDependencies += "dev.zio" %% "zio-interop-cats" % "2.0.0.0-RC1"

编辑:

在@AndreyTyukin 的帮助下,我发现要使其并行工作,我需要运行lib 中可用的typeclassList(k,k2,k3).parSequence的使用实例。@LuisMiguelMejíaSuárez 对这个问题的评论解释了为什么我们必须使用.Parallelzio-interop-catsParallel

4

0 回答 0