object Scheduler extends SchedulerCompanionImpl with Serializable
- Source
- Scheduler.scala
- Alphabetic
- By Inheritance
- Scheduler
- Serializable
- SchedulerCompanionImpl
- SchedulerCompanion
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- implicit final class Extensions extends AnyVal with ExecuteExtensions
Utilities complementing the
Scheduler
interface. - trait ImplicitsLike extends AnyRef
- Definition Classes
- SchedulerCompanion
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val BATCHING: Flag
The Scheduler supports processing in batches via an internal trampoline.
The Scheduler supports processing in batches via an internal trampoline.
Schedulers that implement the batching behavior will recognize monix.execution.schedulers.TrampolinedRunnable instances (via
instanceOf
checks) and make an effort to execute them on the current thread.This flag is exposed via Scheduler.features.
- See also
BatchingScheduler for an implementation.
- lazy val DefaultScheduledExecutor: ScheduledExecutorService
The default
ScheduledExecutor
instance.The default
ScheduledExecutor
instance.Currently it's a single-threaded Java
ScheduledExecutorService
used for scheduling delayed tasks for execution. But the actual execution will not happen on this executor service. In general you can just reuse this one for all your scheduling needs.- Definition Classes
- SchedulerCompanionImpl
- val TRACING: Flag
Flag signaling that the Scheduler implementation can transport Local variables over async boundaries.
Flag signaling that the Scheduler implementation can transport Local variables over async boundaries.
- See also
TracingScheduler and TracingSchedulerService for implementations.
- def apply(executionModel: ExecutionModel): Scheduler
Scheduler builder - uses monix's default
ScheduledExecutorService
for handling the scheduling of tasks.Scheduler builder - uses monix's default
ScheduledExecutorService
for handling the scheduling of tasks. Uses Scala'ss.c.ExecutionContext.global
for actual execution.- executionModel
is the preferred ExecutionModel, a guideline for run-loops and producers of data. Use ExecutionModel.Default for the default.
- Definition Classes
- SchedulerCompanionImpl
- def apply(reporter: UncaughtExceptionReporter, executionModel: ExecutionModel): Scheduler
Scheduler builder - uses monix's default
ScheduledExecutorService
for handling the scheduling of tasks.Scheduler builder - uses monix's default
ScheduledExecutorService
for handling the scheduling of tasks. Uses Scala'ss.c.ExecutionContext.global
for actual execution.- reporter
is the UncaughtExceptionReporter that logs uncaught exceptions. Wrap the given
ExecutionContext.reportFailure
or use UncaughtExceptionReporter.default for the default.- executionModel
is the preferred ExecutionModel, a guideline for run-loops and producers of data. Use ExecutionModel.Default for the default.
- Definition Classes
- SchedulerCompanionImpl
- def apply(ec: ExecutionContext, executionModel: ExecutionModel): Scheduler
Scheduler builder - uses monix's default
ScheduledExecutorService
for handling the scheduling of tasks.Scheduler builder - uses monix's default
ScheduledExecutorService
for handling the scheduling of tasks.- ec
is the execution context on top of which all tasks will run.
- executionModel
is the preferred ExecutionModel, a guideline for run-loops and producers of data. Use ExecutionModel.Default for the default.
- Definition Classes
- SchedulerCompanionImpl
- def apply(ec: ExecutionContext): Scheduler
Scheduler builder - uses monix's default
ScheduledExecutorService
for handling the scheduling of tasks.Scheduler builder - uses monix's default
ScheduledExecutorService
for handling the scheduling of tasks.- ec
is the execution context on top of which all tasks will run.
- Definition Classes
- SchedulerCompanionImpl
- def apply(executor: ExecutorService, executionModel: ExecutionModel): SchedulerService
Scheduler builder that converts a Java
ExecutorService
into a scheduler.Scheduler builder that converts a Java
ExecutorService
into a scheduler.- executor
is the
ScheduledExecutorService
that handles the scheduling of tasks into the future. If not provided, an internal default will be used. You can also create one withjava.util.concurrent.Executors
.- executionModel
is the preferred ExecutionModel, a guideline for run-loops and producers of data. Use ExecutionModel.Default for the default.
- Definition Classes
- SchedulerCompanionImpl
- def apply(executor: ExecutorService): SchedulerService
Scheduler builder that converts a Java
ExecutorService
into a scheduler.Scheduler builder that converts a Java
ExecutorService
into a scheduler.- executor
is the
ScheduledExecutorService
that handles the scheduling of tasks into the future. If not provided, an internal default will be used. You can also create one withjava.util.concurrent.Executors
.
- Definition Classes
- SchedulerCompanionImpl
- def apply(executor: ExecutorService, reporter: UncaughtExceptionReporter, executionModel: ExecutionModel): SchedulerService
Scheduler builder that converts a Java
ExecutorService
into a scheduler.Scheduler builder that converts a Java
ExecutorService
into a scheduler.- executor
is the
ScheduledExecutorService
that handles the scheduling of tasks into the future. If not provided, an internal default will be used. You can also create one withjava.util.concurrent.Executors
.- reporter
is the UncaughtExceptionReporter that logs uncaught exceptions. Wrap the given
ExecutionContext.reportFailure
or use UncaughtExceptionReporter.default for the default.- executionModel
is the preferred ExecutionModel, a guideline for run-loops and producers of data. Use ExecutionModel.Default for the default.
- Definition Classes
- SchedulerCompanionImpl
- def apply(executor: ExecutorService, reporter: UncaughtExceptionReporter): SchedulerService
Scheduler builder that converts a Java
ExecutorService
into a scheduler.Scheduler builder that converts a Java
ExecutorService
into a scheduler.- executor
is the
ScheduledExecutorService
that handles the scheduling of tasks into the future. If not provided, an internal default will be used. You can also create one withjava.util.concurrent.Executors
.- reporter
is the UncaughtExceptionReporter that logs uncaught exceptions. Wrap the given
ExecutionContext.reportFailure
or use UncaughtExceptionReporter.default for the default.
- Definition Classes
- SchedulerCompanionImpl
- def apply(ec: ExecutionContext, reporter: UncaughtExceptionReporter, executionModel: ExecutionModel): Scheduler
Scheduler builder .
Scheduler builder .
- ec
is the execution context on top of which all tasks will run. Use
scala.concurrent.ExecutionContext.Implicits.global
for the default.- reporter
is the UncaughtExceptionReporter that logs uncaught exceptions. Wrap the given
ExecutionContext.reportFailure
or use UncaughtExceptionReporter.default for the default.- executionModel
is the preferred ExecutionModel, a guideline for run-loops and producers of data. Use ExecutionModel.Default for the default.
- Definition Classes
- SchedulerCompanionImpl
- def apply(ec: ExecutionContext, reporter: UncaughtExceptionReporter): Scheduler
Scheduler builder.
Scheduler builder.
- ec
is the execution context on top of which all tasks will run. Use
scala.concurrent.ExecutionContext.Implicits.global
for the default.- reporter
is the UncaughtExceptionReporter that logs uncaught exceptions. Wrap the given
ExecutionContext.reportFailure
or use UncaughtExceptionReporter.default for the default.
- Definition Classes
- SchedulerCompanionImpl
- def apply(executor: ScheduledExecutorService, ec: ExecutionContext): Scheduler
Scheduler builder.
Scheduler builder.
- executor
is the
ScheduledExecutorService
that handles the scheduling of tasks into the future. If not provided, an internal default will be used. You can also create one withjava.util.concurrent.Executors
.- ec
is the execution context on top of which all tasks will run. Use
scala.concurrent.ExecutionContext.Implicits.global
for the default.
- Definition Classes
- SchedulerCompanionImpl
- def apply(executor: ScheduledExecutorService, ec: ExecutionContext, reporter: UncaughtExceptionReporter, executionModel: ExecutionModel): Scheduler
Scheduler builder.
Scheduler builder.
The resulting Scheduler will piggyback on top of a Java
ScheduledExecutorService
for scheduling tasks for execution with a delay and a ScalaExecutionContext
for actually executing the tasks.- executor
is the
ScheduledExecutorService
that handles the scheduling of tasks into the future. If not provided, an internal default will be used. You can also create one withjava.util.concurrent.Executors
.- ec
is the execution context on top of which all tasks will run. Use
scala.concurrent.ExecutionContext.Implicits.global
for the default.- reporter
is the UncaughtExceptionReporter that logs uncaught exceptions. Wrap the given
ExecutionContext.reportFailure
or use UncaughtExceptionReporter.default for the default.- executionModel
is the preferred ExecutionModel, a guideline for run-loops and producers of data. Use ExecutionModel.Default for the default.
- Definition Classes
- SchedulerCompanionImpl
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def cached(name: String, minThreads: Int, maxThreads: Int, keepAliveTime: FiniteDuration = 60.seconds, daemonic: Boolean = true, reporter: UncaughtExceptionReporter = UncaughtExceptionReporter.default, executionModel: ExecutionModel = ExecModel.Default): SchedulerService
Builds a Scheduler backed by an internal
java.util.concurrent.ThreadPoolExecutor
, that executes each submitted task using one of possibly several pooled threads.Builds a Scheduler backed by an internal
java.util.concurrent.ThreadPoolExecutor
, that executes each submitted task using one of possibly several pooled threads.- name
the created threads name prefix, for easy identification
- minThreads
the number of threads to keep in the pool, even if they are idle
- maxThreads
the maximum number of threads to allow in the pool
- keepAliveTime
when the number of threads is greater than the core, this is the maximum time that excess idle threads will wait for new tasks before terminating
- daemonic
specifies whether the created threads should be daemonic (non-daemonic threads are blocking the JVM process on exit).
- reporter
is the UncaughtExceptionReporter that logs uncaught exceptions. Wrap the given
ExecutionContext.reportFailure
or use UncaughtExceptionReporter.default for the default.- executionModel
is the preferred ExecutionModel, a guideline for run-loops and producers of data. Use ExecutionModel.Default for the default.
- Definition Classes
- SchedulerCompanionImpl
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def computation(parallelism: Int = Runtime.getRuntime.availableProcessors(), name: String = "monix-computation", daemonic: Boolean = true, reporter: UncaughtExceptionReporter = UncaughtExceptionReporter.default, executionModel: ExecutionModel = ExecModel.Default): SchedulerService
Creates a Scheduler meant for computationally heavy CPU-bound tasks.
Creates a Scheduler meant for computationally heavy CPU-bound tasks.
Characteristics:
- backed by a
ForkJoinPool
implementation, in async mode - uses monix's defaultScheduledExecutorService
instance for scheduling - DOES NOT cooperate with Scala'sBlockContext
- parallelism
is the number of threads that can run in parallel
- name
the created threads name prefix, for easy identification.
- daemonic
specifies whether the created threads should be daemonic (non-daemonic threads are blocking the JVM process on exit).
- reporter
is the UncaughtExceptionReporter that logs uncaught exceptions. Wrap the given
ExecutionContext.reportFailure
or use UncaughtExceptionReporter.default for the default.- executionModel
is the preferred ExecutionModel, a guideline for run-loops and producers of data. Use ExecutionModel.Default for the default.
- Definition Classes
- SchedulerCompanionImpl
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def fixedPool(name: String, poolSize: Int, daemonic: Boolean = true, reporter: UncaughtExceptionReporter = UncaughtExceptionReporter.default, executionModel: ExecutionModel = ExecModel.Default): SchedulerService
Builds a Scheduler with a fixed thread-pool.
Builds a Scheduler with a fixed thread-pool.
Characteristics:
- backed by a fixed pool
ScheduledExecutorService
that takes care of both scheduling tasks in the future and of executing immediate tasks - does not cooperate with Scala'sBlockingContext
, so tasks should not block on the result of other tasks scheduled to run on this same thread- name
the created threads name prefix, for easy identification.
- daemonic
specifies whether the created thread should be daemonic
- reporter
is the UncaughtExceptionReporter that logs uncaught exceptions.
- Definition Classes
- SchedulerCompanionImpl
- def forkJoin(parallelism: Int, maxThreads: Int, name: String = "monix-forkjoin", daemonic: Boolean = true, reporter: UncaughtExceptionReporter = UncaughtExceptionReporter.default, executionModel: ExecutionModel = ExecModel.Default): SchedulerService
Creates a general purpose Scheduler backed by a
ForkJoinPool
, similar to Scala'sglobal
.Creates a general purpose Scheduler backed by a
ForkJoinPool
, similar to Scala'sglobal
.Characteristics:
- backed by a
ForkJoinPool
implementation, in async mode - uses monix's defaultScheduledExecutorService
instance for scheduling - cooperates with Scala'sBlockContext
- parallelism
is the number of threads that can run in parallel
- maxThreads
is the maximum number of threads that can be created
- name
the created threads name prefix, for easy identification.
- daemonic
specifies whether the created threads should be daemonic (non-daemonic threads are blocking the JVM process on exit).
- reporter
is the UncaughtExceptionReporter that logs uncaught exceptions. Wrap the given
ExecutionContext.reportFailure
or use UncaughtExceptionReporter.default for the default.- executionModel
is the preferred ExecutionModel, a guideline for run-loops and producers of data. Use ExecutionModel.Default for the default.
- Definition Classes
- SchedulerCompanionImpl
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def global: Scheduler
The explicit global
Scheduler
.The explicit global
Scheduler
. Invokeglobal
when you want to provide the globalScheduler
explicitly.The default
Scheduler
implementation is backed by a work-stealing thread pool, along with a single-threadedScheduledExecutionContext
that does the scheduling. By default, the thread pool uses a target number of worker threads equal to the number of available processors.- returns
the global
Scheduler
- Definition Classes
- SchedulerCompanionImpl → SchedulerCompanion
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def io(name: String = "monix-io", daemonic: Boolean = true, reporter: UncaughtExceptionReporter = UncaughtExceptionReporter.default, executionModel: ExecutionModel = ExecModel.Default): SchedulerService
Creates a Scheduler meant for blocking I/O tasks.
Creates a Scheduler meant for blocking I/O tasks.
Characteristics:
- backed by a cached
ThreadPool
executor with 60 seconds of keep-alive - the maximum number of threads is unbounded, as recommended for blocking I/O - uses monix's defaultScheduledExecutorService
instance for scheduling - doesn't cooperate with Scala'sBlockContext
because it is unbounded- name
the created threads name prefix, for easy identification.
- daemonic
specifies whether the created threads should be daemonic (non-daemonic threads are blocking the JVM process on exit).
- reporter
is the UncaughtExceptionReporter that logs uncaught exceptions. Wrap the given
ExecutionContext.reportFailure
or use UncaughtExceptionReporter.default for the default.- executionModel
is the preferred ExecutionModel, a guideline for run-loops and producers of data. Use ExecutionModel.Default for the default.
- Definition Classes
- SchedulerCompanionImpl
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def singleThread(name: String, daemonic: Boolean = true, reporter: UncaughtExceptionReporter = UncaughtExceptionReporter.default, executionModel: ExecutionModel = ExecModel.Default): SchedulerService
Builds a Scheduler that schedules and executes tasks on its own thread.
Builds a Scheduler that schedules and executes tasks on its own thread.
Characteristics:
- backed by a single-threaded
ScheduledExecutorService
that takes care of both scheduling tasks in the future and of executing tasks - does not cooperate with Scala'sBlockingContext
, so tasks should not block on the result of other tasks scheduled to run on this same thread- name
is the name of the created thread, for easy identification
- daemonic
specifies whether the created thread should be daemonic (non-daemonic threads are blocking the JVM process on exit)
- reporter
is the UncaughtExceptionReporter that logs uncaught exceptions. Wrap the given
ExecutionContext.reportFailure
or use UncaughtExceptionReporter.default for the default.- executionModel
is the preferred ExecutionModel, a guideline for run-loops and producers of data. Use ExecutionModel.Default for the default.
- Definition Classes
- SchedulerCompanionImpl
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def traced: Scheduler
A global Scheduler instance that does propagation of Local.Context on async execution.
A global Scheduler instance that does propagation of Local.Context on async execution.
It wraps global.
- Definition Classes
- SchedulerCompanionImpl → SchedulerCompanion
- def trampoline(underlying: Scheduler = Implicits.global, executionModel: ExecutionModel = ExecModel.Default): Scheduler
Builds a TrampolineScheduler.
Builds a TrampolineScheduler.
- underlying
is the Scheduler to which the we defer to in case asynchronous or time-delayed execution is needed
- Definition Classes
- SchedulerCompanionImpl
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- object Implicits extends schedulers.SchedulerCompanionImpl.ImplicitsLike
- Definition Classes
- SchedulerCompanionImpl → SchedulerCompanion
This is the API documentation for the Monix library.
Package Overview
monix.execution exposes lower level primitives for dealing with asynchronous execution:
Atomic
types, as alternative tojava.util.concurrent.atomic
monix.catnap exposes pure abstractions built on top of the Cats-Effect type classes:
monix.eval is for dealing with evaluation of results, thus exposing Task and Coeval.
monix.reactive exposes the
Observable
pattern:Observable
implementationsmonix.tail exposes Iterant for purely functional pull based streaming:
Batch
andBatchCursor
, the alternatives to Scala'sIterable
andIterator
respectively that we are using within Iterant's encodingYou can control evaluation with type you choose - be it Task, Coeval, cats.effect.IO or your own as long as you provide correct cats-effect or cats typeclass instance.