final case class DropOldAndSignal[A](bufferSize: Int, onOverflow: (Long) => Coeval[Option[A]]) extends Evicted[A] with Product with Serializable
A OverflowStrategy specifying that on reaching the maximum size, the currently buffered events should start being dropped in a FIFO order, so the oldest events from the buffer will be dropped first.
The given onOverflow
function get be used for logging the event
and for sending a message to the downstream consumers to inform
them of dropped messages. The function can return None
in which
case no message is sent and thus you can use it just to log a warning.
- bufferSize
specifies how many events our buffer can hold before overflowing
- onOverflow
is a function that can get called on overflow with a number of messages that were dropped, a function that builds a new message that will be sent to downstream. If it returns
None
, then no message gets sent to downstream.
- Source
- OverflowStrategy.scala
- Alphabetic
- By Inheritance
- DropOldAndSignal
- Product
- Equals
- Evicted
- Synchronous
- OverflowStrategy
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new DropOldAndSignal(bufferSize: Int, onOverflow: (Long) => Coeval[Option[A]])
- bufferSize
specifies how many events our buffer can hold before overflowing
- onOverflow
is a function that can get called on overflow with a number of messages that were dropped, a function that builds a new message that will be sent to downstream. If it returns
None
, then no message gets sent to downstream.
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
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val bufferSize: Int
- Definition Classes
- DropOldAndSignal → Evicted
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- val isEvicted: Boolean
- Definition Classes
- Evicted → OverflowStrategy
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val isSynchronous: Boolean
- Definition Classes
- Synchronous → OverflowStrategy
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- val onOverflow: (Long) => Coeval[Option[A]]
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- 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()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
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.