private void SubscriptionDropped(EventStoreCatchUpSubscription subscription, SubscriptionDropReason reason, Exception ex)
 {
     // Known bug in ES, must manually stop subscription or sub will continue delivering events.
     // https://groups.google.com/forum/#!searchin/event-store/subscription/event-store/AdKzv8TxabM/6RzudeuAAgAJ
     _sub.Stop();
     Subscribe();
 }
 private void Stop()
 {
     _subscription.Stop();
     if (_setLastPosition != null)
     {
         _setLastPosition(_subscription.LastProcessedEventNumber);
     }
 }
        private void SubscribeToStream(IEventStoreConnection connection)
        {
            if (_subscription != null)
            {
                _subscription.Stop();
                _subscription = null;
            }

            _subscription = connection.SubscribeToStreamFrom(_streamName, _checkpoint,
                                                             CatchUpSubscriptionSettings.Default,
                                                             EventAppeared, LiveProcessingStarted, SubscriptionDropped);
        }
示例#4
0
        public bool Close()
        {
            try
            {
                _eventStoreSubscription.Stop(TimeSpan.FromSeconds(5));
                _observableSubscription.Dispose();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
示例#5
0
        void SubscriptionDropped(EventStoreCatchUpSubscription projection, SubscriptionDropReason subscriptionDropReason, Exception exception)
        {
            Connection.Connected -= Connection_Connected;
            Subscription.Stop();
            if (IsTransient(subscriptionDropReason))
            {
                ReconnectionCounter++;
                if (ReconnectionCounter > MaxRecconectionAttemts)
                {
                    LogAndFail();
                }

                Logger.LogWarning(exception, $"{StreamName} subscription dropped because of an transient error: ({subscriptionDropReason}). Reconnection attempt nr: {ReconnectionCounter}.");
                Thread.Sleep(300);
                Start(CurrentCheckpoint).Wait();
            }
            else
            {
                Logger.LogCritical(exception, $"{StreamName} subscription failed: ({subscriptionDropReason}).");
                throw exception;
            }
        }
示例#6
0
 public void Stop()
 {
     _ingressSubscription.Stop();
 }
 public void Stop()
 {
     _catchUpSubscription.Stop();
     _eventStream.CompleteAdding();
 }
示例#8
0
        public Task StopAsync(CancellationToken cancellationToken)
        {
            _subscription.Stop();

            return(Task.CompletedTask);
        }
 public override void Disconnect()
 {
     _eventStoreCatchupSubscription?.Stop();
 }
示例#10
0
 public void Stop()
 {
     _subscription?.Stop();
 }
 protected override void PostStop()
 {
     _subscription?.Stop();
     base.PostStop();
 }