ZIO взаимодействует с Cats при параллельных операциях

ZIO не зависит от Catsпоэтому он имеет свои собственные методы для выполнения sequence операции: ZIO.sequencePar а также ZIO.sequence,

Я пытался использовать sequence обеспечено взаимодействие с 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)

Могу я сделать ZIO обращаться sequence как 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 я обнаружил, что для того, чтобы он работал параллельно, мне нужно запустить List(k,k2,k3).parSequence которые используют экземпляр класса типов Parallel доступно в zio-interop-cats Lib. И комментарии @LuisMiguelMejíaSuárez к этому вопросу дают некоторое объяснение того, почему мы должны использовать Parallel,

0 ответов

Другие вопросы по тегам