diff --git a/Emby.Server.Implementations/Data/CleanDatabaseScheduledTask.cs b/Emby.Server.Implementations/Data/CleanDatabaseScheduledTask.cs index 932bd2b05a..6ea7d91970 100644 --- a/Emby.Server.Implementations/Data/CleanDatabaseScheduledTask.cs +++ b/Emby.Server.Implementations/Data/CleanDatabaseScheduledTask.cs @@ -30,11 +30,10 @@ namespace Emby.Server.Implementations.Data public Task Run(IProgress progress, CancellationToken cancellationToken) { - CleanDeadItems(cancellationToken, progress); - return Task.CompletedTask; + return CleanDeadItems(cancellationToken, progress); } - private void CleanDeadItems(CancellationToken cancellationToken, IProgress progress) + private async Task CleanDeadItems(CancellationToken cancellationToken, IProgress progress) { var itemIds = _libraryManager.GetItemIds(new InternalItemsQuery { @@ -68,10 +67,10 @@ namespace Emby.Server.Implementations.Data progress.Report(percent * 100); } - using var context = _dbProvider.CreateDbContext(); - using var transaction = context.Database.BeginTransaction(); - context.ItemValues.Where(e => e.BaseItemsMap!.Count == 0).ExecuteDelete(); - transaction.Commit(); + using var context = await _dbProvider.CreateDbContextAsync(cancellationToken).ConfigureAwait(false); + using var transaction = await context.Database.BeginTransactionAsync(cancellationToken).ConfigureAwait(false); + await context.ItemValues.Where(e => e.BaseItemsMap!.Count == 0).ExecuteDeleteAsync(cancellationToken).ConfigureAwait(false); + await transaction.CommitAsync(cancellationToken).ConfigureAwait(false); progress.Report(100); }