Hook in akka-persistence-typed (#27464)
This commit is contained in:
parent
38cda5147f
commit
70a0af1036
2 changed files with 15 additions and 3 deletions
|
|
@ -63,6 +63,8 @@ private[akka] trait JournalInteractions[C, E, S] {
|
|||
@unused repr: PersistentRepr): Unit = ()
|
||||
|
||||
protected def internalPersistAll(
|
||||
ctx: ActorContext[_],
|
||||
cmd: Any,
|
||||
state: Running.RunningState[S],
|
||||
events: immutable.Seq[(EventOrTagged, String)]): Running.RunningState[S] = {
|
||||
if (events.nonEmpty) {
|
||||
|
|
@ -79,6 +81,8 @@ private[akka] trait JournalInteractions[C, E, S] {
|
|||
writerUuid = setup.writerIdentity.writerUuid,
|
||||
sender = ActorRef.noSender)
|
||||
}
|
||||
|
||||
onWritesInitiated(ctx, cmd, writes)
|
||||
val write = AtomicWrite(writes)
|
||||
|
||||
setup.journal.tell(
|
||||
|
|
@ -89,6 +93,12 @@ private[akka] trait JournalInteractions[C, E, S] {
|
|||
} else state
|
||||
}
|
||||
|
||||
@InternalStableApi
|
||||
private[akka] def onWritesInitiated(
|
||||
@unused ctx: ActorContext[_],
|
||||
@unused cmd: Any,
|
||||
@unused repr: immutable.Seq[PersistentRepr]): Unit = ()
|
||||
|
||||
protected def replayEvents(fromSeqNr: Long, toSeqNr: Long): Unit = {
|
||||
setup.log.debug("Replaying messages: from: {}, to: {}", fromSeqNr, toSeqNr)
|
||||
setup.journal ! ReplayMessages(
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ private[akka] object Running {
|
|||
|
||||
val eventsToPersist = events.map(evt => (adaptEvent(evt), setup.eventAdapter.manifest(evt)))
|
||||
|
||||
val newState2 = internalPersistAll(newState, eventsToPersist)
|
||||
val newState2 = internalPersistAll(setup.context, msg, newState, eventsToPersist)
|
||||
|
||||
persistingEvents(newState2, state, events.size, shouldSnapshotAfterPersist, sideEffects)
|
||||
|
||||
|
|
@ -268,8 +268,10 @@ private[akka] object Running {
|
|||
onWriteSuccess(setup.context, p)
|
||||
|
||||
// only once all things are applied we can revert back
|
||||
if (eventCounter < numberOfEvents) this
|
||||
else {
|
||||
if (eventCounter < numberOfEvents) {
|
||||
onWriteDone(setup.context, p)
|
||||
this
|
||||
} else {
|
||||
visibleState = state
|
||||
if (shouldSnapshotAfterPersist == NoSnapshot || state.state == null) {
|
||||
val newState = applySideEffects(sideEffects, state)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue