SchedulerEffect
Value members
Concrete methods
Derives a cats.effect.Clock
from Scheduler for any
data type that has a cats.effect.LiftIO
implementation.
Derives a cats.effect.Clock
from Scheduler for any
data type that has a cats.effect.LiftIO
implementation.
Derives a cats.effect.ContextShift
from Scheduler for any
data type that has a cats.effect.Effect
implementation.
Derives a cats.effect.ContextShift
from Scheduler for any
data type that has a cats.effect.Effect
implementation.
import monix.execution.Scheduler
import java.util.concurrent.Executors
import scala.concurrent.ExecutionContext
import cats.effect._
val contextShift: ContextShift[IO] = SchedulerEffect.contextShift[IO](Scheduler.global)
val executor = Executors.newCachedThreadPool()
val ec = ExecutionContext.fromExecutor(executor)
contextShift.evalOn(ec)(IO(println("I'm on different thread pool!")))
.flatMap { _ =>
IO(println("I came back to default"))
}
Derives a cats.effect.Timer
from Scheduler for any
data type that has a cats.effect.Concurrent
type class
instance.
Derives a cats.effect.Timer
from Scheduler for any
data type that has a cats.effect.Concurrent
type class
instance.
import monix.execution.Scheduler
import cats.effect._
import scala.concurrent.duration._
// Needed for ContextShift[IO]
implicit def shift: ContextShift[IO] =
SchedulerEffect.contextShift[IO](Scheduler.global)(IO.ioEffect)
implicit val timer: Timer[IO] = SchedulerEffect.timer[IO](Scheduler.global)
IO.sleep(10.seconds).flatMap { _ =>
IO(println("Delayed hello!"))
}
Derives a cats.effect.Timer
from Scheduler for any
data type that has a cats.effect.LiftIO
instance.
Derives a cats.effect.Timer
from Scheduler for any
data type that has a cats.effect.LiftIO
instance.
This is the relaxed timer method, needing only LiftIO
to work, by piggybacking on cats.effect.IO
.
import monix.execution.Scheduler
import cats.effect._
import scala.concurrent.duration._
implicit val timer: Timer[IO] = SchedulerEffect.timerLiftIO[IO](Scheduler.global)
IO.sleep(10.seconds).flatMap { _ =>
IO(println("Delayed hello!"))
}