Exemplo n.º 1
0
        public async Task FaultSubscription(GuidId subscriptionId)
        {
            PubSubSubscriptionState pubSubState = State.Consumers.FirstOrDefault(s => s.Equals(subscriptionId));

            if (pubSubState == null)
            {
                return;
            }
            try
            {
                pubSubState.Fault();
                if (logger.IsEnabled(LogLevel.Debug))
                {
                    logger.Debug("Setting subscription {0} to a faulted state.", subscriptionId.Guid);
                }

                await WriteStateAsync();
                await NotifyProducersOfRemovedSubscription(pubSubState.SubscriptionId, pubSubState.Stream);
            }
            catch (Exception exc)
            {
                logger.Error(ErrorCode.Stream_SetSubscriptionToFaultedFailed,
                             $"Failed to set subscription state to faulted.  SubscriptionId {subscriptionId}", exc);
                // Corrupted state, deactivate grain.
                DeactivateOnIdle();
                throw;
            }
        }
Exemplo n.º 2
0
        public async Task FaultSubscription(GuidId subscriptionId)
        {
            PubSubSubscriptionState pubSubState = State.Consumers.FirstOrDefault(s => s.Equals(subscriptionId));

            if (pubSubState == null)
            {
                return;
            }
            pubSubState.Fault();
            if (logger.IsVerbose)
            {
                logger.Verbose("Setting subscription {0} to a faulted state.", subscriptionId.Guid);
            }

            await WriteStateAsync();
            await NotifyProducersOfRemovedSubscription(pubSubState.SubscriptionId, pubSubState.Stream);
            await ClearStateWhenEmpty();
        }