Exemplo n.º 1
0
        public async Task <long> PutSubscription(SubscriptionCreationOptions options, string raftRequestId, long?subscriptionId = null, bool?disabled = false, string mentor = null)
        {
            var command = new PutSubscriptionCommand(_db.Name, options.Query, mentor, raftRequestId)
            {
                InitialChangeVector = options.ChangeVector,
                SubscriptionName    = options.Name,
                SubscriptionId      = subscriptionId,
                Disabled            = disabled ?? false
            };

            var(etag, _) = await _serverStore.SendToLeaderAsync(command);

            if (_logger.IsInfoEnabled)
            {
                _logger.Info($"New Subscription with index {etag} was created");
            }

            await _db.RachisLogIndexNotifications.WaitForIndexNotification(etag, _serverStore.Engine.OperationTimeout);

            if (subscriptionId != null)
            {
                // updated existing subscription
                return(subscriptionId.Value);
            }

            return(etag);
        }
Exemplo n.º 2
0
        public async Task <long> PutSubscription(SubscriptionCreationOptions options, long?subscriptionId = null, bool?disabled = false)
        {
            var command = new PutSubscriptionCommand(_db.Name, options.Query)
            {
                InitialChangeVector = options.ChangeVector,
                SubscriptionName    = options.Name,
                SubscriptionId      = subscriptionId,
                Disabled            = disabled ?? false
            };

            var(etag, _) = await _serverStore.SendToLeaderAsync(command);

            if (_logger.IsInfoEnabled)
            {
                _logger.Info($"New Subscription with index {etag} was created");
            }

            await _db.RachisLogIndexNotifications.WaitForIndexNotification(etag);

            return(etag);
        }