public async Task SetupContainerAsync(Container container) { EnsureArg.IsNotNull(container, nameof(container)); using (var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromMinutes(5))) { await using (var distributedLock = _lockFactory.Create(container, $"UpgradeLock:{CollectionSettingsVersion}")) { _logger.LogDebug("Attempting to acquire upgrade lock"); await distributedLock.AcquireLock(cancellationTokenSource.Token); foreach (var updater in _collectionUpdater) { _logger.LogDebug("Running {CollectionUpdater} on {CollectionId}", updater.GetType().Name, _collectionConfiguration.CollectionId); await updater.ExecuteAsync(container); } await distributedLock.ReleaseLock(); } } }
public async Task SetupCollectionAsync(IDocumentClient documentClient, DocumentCollection collection) { EnsureArg.IsNotNull(documentClient, nameof(documentClient)); EnsureArg.IsNotNull(collection, nameof(collection)); using (var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromMinutes(5))) { using (var distributedLock = _lockFactory.Create(documentClient, _configuration.GetRelativeCollectionUri(_collectionConfiguration.CollectionId), $"UpgradeLock:{CollectionSettingsVersion}")) { _logger.LogDebug("Attempting to acquire upgrade lock"); await distributedLock.AcquireLock(cancellationTokenSource.Token); foreach (var updater in _collectionUpdater) { _logger.LogDebug("Running {CollectionUpdater} on {CollectionUri}", updater.GetType().Name, _configuration.GetAbsoluteCollectionUri(_collectionConfiguration.CollectionId)); await updater.ExecuteAsync(documentClient, collection, _configuration.GetRelativeCollectionUri(_collectionConfiguration.CollectionId)); } await distributedLock.ReleaseLock(); } } }