public void Handle(ProjectionSubscriptionMessage.CommittedEventReceived message) { if (IsOutOfOrderSubscriptionMessage(message)) { return; } RegisterSubscriptionMessage(message); EnsureState( State.Running | State.Paused | State.Stopping | State.Stopped | State.FaultedStopping | State.Faulted); try { if (_state == State.Running || _state == State.Paused) { CheckpointTag eventTag = message.CheckpointTag; string partition = _checkpointStrategy.StatePartitionSelector.GetStatePartition(message); var committedEventWorkItem = new CommittedEventWorkItem(this, message, partition); _processingQueue.EnqueueTask(committedEventWorkItem, eventTag); } _processingQueue.ProcessEvent(); } catch (Exception ex) { SetFaulted(ex); } }
public void Handle(EventReaderSubscriptionMessage.ProgressChanged message) { if (IsOutOfOrderSubscriptionMessage(message)) { return; } RegisterSubscriptionMessage(message); try { var progressWorkItem = new ProgressWorkItem(_checkpointManager, message.Progress); _processingQueue.EnqueueTask(progressWorkItem, message.CheckpointTag, allowCurrentPosition: true); ProcessEvent(); } catch (Exception ex) { _coreProjection.SetFaulted(ex); } }