trait AsyncReplay extends AnyRef
A plugin may implement this trait as an optimization. Combining asyncReplayMessages
and
asyncReadHighestSequenceNr
into one method. If this trait is implemented the
methods in AsyncRecovery will not be called.
- Source
- AsyncRecovery.scala
- Alphabetic
- By Inheritance
- AsyncReplay
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def replayMessages(persistenceId: String, fromSequenceNr: Long, toSequenceNr: Long, max: Long)(recoveryCallback: (PersistentRepr) => Unit): Future[Long]
Plugin API: asynchronously replays persistent messages.
Plugin API: asynchronously replays persistent messages. Implementations replay a message by calling
replayCallback
. The returned future must be completed with the highest sequence number when all messages (matching the sequence number bounds) have been replayed. Journal must maintain the highest sequence number and never decrease it. The future must be completed with a failure if any of the persistent messages could not be replayed.The
toSequenceNr
will either beLong.MaxValue
to replay all messages or otherwise a limited upper sequence number. When replaying all messages the returned highest sequence number should be the same as the last replayed message, and the implementation would typically not have to read highest sequence number in other way than replaying the messages. With a customtoSequenceNr
the implementation would typically have to both replay messages and read the actual highest sequence number.One special case is
toSequenceNr
of 0, which means that no messages should be replayed, but the returned highest sequence number must still be the highest of all stored messages. In this case the implementation would typically have to read the actual highest sequence number but can skip replay of messages.This call is NOT protected with a circuit-breaker because it may take long time to replay all events. The plugin implementation itself must protect against an unresponsive backend store and make sure that the returned Future is completed with success or failure within reasonable time. It is not allowed to ignore completing the future.
Please also note that requests to
replayMessages
may be made concurrently to writes executing for the samepersistenceId
, in particular it is possible that a restarting actor tries to recover before its outstanding writes have completed.- persistenceId
persistent actor id.
- fromSequenceNr
sequence number where replay should start (inclusive).
- toSequenceNr
sequence number where replay should end (inclusive).
- max
maximum number of messages to be replayed.
- recoveryCallback
called to replay a single message. Can be called from any thread.
- returns
highest sequence number
- See also
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from AsyncReplay toany2stringadd[AsyncReplay] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (AsyncReplay, B)
- Implicit
- This member is added by an implicit conversion from AsyncReplay toArrowAssoc[AsyncReplay] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
- def ensuring(cond: (AsyncReplay) => Boolean, msg: => Any): AsyncReplay
- Implicit
- This member is added by an implicit conversion from AsyncReplay toEnsuring[AsyncReplay] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (AsyncReplay) => Boolean): AsyncReplay
- Implicit
- This member is added by an implicit conversion from AsyncReplay toEnsuring[AsyncReplay] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): AsyncReplay
- Implicit
- This member is added by an implicit conversion from AsyncReplay toEnsuring[AsyncReplay] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): AsyncReplay
- Implicit
- This member is added by an implicit conversion from AsyncReplay toEnsuring[AsyncReplay] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- 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
- @HotSpotIntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- 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])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from AsyncReplay toStringFormat[AsyncReplay] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (AsyncReplay, B)
- Implicit
- This member is added by an implicit conversion from AsyncReplay toArrowAssoc[AsyncReplay] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.