Explorar el Código

Made Clean task async

JPVenson hace 7 meses
padre
commit
447ff1d23c

+ 6 - 7
Emby.Server.Implementations/Data/CleanDatabaseScheduledTask.cs

@@ -30,11 +30,10 @@ namespace Emby.Server.Implementations.Data
 
         public Task Run(IProgress<double> progress, CancellationToken cancellationToken)
         {
-            CleanDeadItems(cancellationToken, progress);
-            return Task.CompletedTask;
+            return CleanDeadItems(cancellationToken, progress);
         }
 
-        private void CleanDeadItems(CancellationToken cancellationToken, IProgress<double> progress)
+        private async Task CleanDeadItems(CancellationToken cancellationToken, IProgress<double> 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);
         }