Как работать с таймером у кошек без эффекта ExecutionContext.global и IOApp? - PullRequest
1 голос
/ 28 апреля 2019

У меня есть простая последовательность операций ввода-вывода с 5-секундной паузой.

  implicit val timer = IO.timer(ExecutionContext.global)

  def doSth(str: String): IO[Unit] = IO(println(str))
  def greeting(): IO[Unit] =
    doSth("Before timer.") *>
      Timer[IO].sleep(5 second) *>
      doSth("After timer")

  val a = greeting().unsafeRunAsyncAndForget()

Как сделать таймер без ExecutionContext.global, IOApp или исправить количество потоков в ExecutionContext.global?

1 Ответ

2 голосов
/ 28 апреля 2019

Попробуйте

implicit val timer = IO.timer(ExecutionContext.fromExecutor(Executors.newFixedThreadPool(10)))

Как настроить хорошо настроенный пул потоков для фьючерсов?

...