Ejemplo n.º 1
0
        private async Task UpdateCollectionSettings(CosmosDbScalingCollectionSettings settings, CosmosDbScalingDirection direction, int requestUnits)
        {
            if (direction == CosmosDbScalingDirection.Up)
            {
                settings.LastScalingIncrementDateTime = DateTimeOffset.Now;
                settings.LastScalingIncrementValue    = requestUnits;
            }
            else
            {
                settings.LastScalingDecrementDateTime = DateTimeOffset.Now;
                settings.LastScalingDecrementValue    = requestUnits;
            }

            HttpStatusCode statusCode = await _scalingConfigRepositoryPolicy.ExecuteAsync(
                () => _cosmosDbScalingConfigRepository.UpdateCollectionSettings(settings));

            if (!statusCode.IsSuccess())
            {
                string errorMessage = $"Failed to update cosmos scale config repository type: '{settings.CosmosCollectionType}' with new request units of '{settings.CurrentRequestUnits}' with status code: '{statusCode}'";
                _logger.Error(errorMessage);
                throw new RetriableException(errorMessage);
            }
        }
Ejemplo n.º 2
0
        private async Task UpdateCollectionSettings(CosmosDbScalingCollectionSettings settings, CosmosDbScalingDirection direction, int requestUnits)
        {
            if (direction == CosmosDbScalingDirection.Up)
            {
                settings.LastScalingIncrementDateTime = DateTimeOffset.Now;
                settings.LastScalingIncrementValue    = requestUnits;
            }
            else
            {
                settings.LastScalingDecrementDateTime = DateTimeOffset.Now;
                settings.LastScalingDecrementValue    = requestUnits;
            }

            await UpdateCollectionSettings(settings);
        }