コード例 #1
0
        public async Task AcknowledgeBatchProcessed(long id, string name, string changeVector, string previousChangeVector)
        {
            var command = new AcknowledgeSubscriptionBatchCommand(_db.Name)
            {
                ChangeVector     = changeVector,
                NodeTag          = _serverStore.NodeTag,
                SubscriptionId   = id,
                SubscriptionName = name,
                LastTimeServerMadeProgressWithDocuments = DateTime.UtcNow,
                LastKnownSubscriptionChangeVector       = previousChangeVector,
            };

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

            await _db.RachisLogIndexNotifications.WaitForIndexNotification(etag);
        }
コード例 #2
0
        public async Task AcknowledgeBatchProcessed(long id, string name, string changeVector, string previousChangeVector)
        {
            var command = new AcknowledgeSubscriptionBatchCommand(_db.Name, RaftIdGenerator.NewId())
            {
                ChangeVector            = changeVector,
                NodeTag                 = _serverStore.NodeTag,
                HasHighlyAvailableTasks = _serverStore.LicenseManager.HasHighlyAvailableTasks(),
                SubscriptionId          = id,
                SubscriptionName        = name,
                LastTimeServerMadeProgressWithDocuments = DateTime.UtcNow,
                LastKnownSubscriptionChangeVector       = previousChangeVector
            };

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

            await _db.RachisLogIndexNotifications.WaitForIndexNotification(etag, _serverStore.Engine.OperationTimeout);
        }
コード例 #3
0
        public async Task AcknowledgeBatchProcessed(long id, string name, string changeVector, string previousChangeVector)
        {
            try
            {
                var command = new AcknowledgeSubscriptionBatchCommand(_db.Name)
                {
                    ChangeVector     = changeVector,
                    NodeTag          = _serverStore.NodeTag,
                    SubscriptionId   = id,
                    SubscriptionName = name,
                    LastTimeServerMadeProgressWithDocuments = DateTime.UtcNow,
                    LastKnownSubscriptionChangeVector       = previousChangeVector,
                };

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

                await _db.RachisLogIndexNotifications.WaitForIndexNotification(etag);
            }
            catch (Exception ex)
            {
                throw new SubscriptionDoesNotBelongToNodeException(
                          $"Subscription {name} has failed to acknowledge batch, therefore another server should be attempted", ex);
            }
        }