예제 #1
0
 public void Handle(ProjectionMessage.Projections.CommittedEventReceived 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);
     }
 }
예제 #2
0
 public void ProcessEvent()
 {
     _processingQueue.ProcessEvent();
 }