From 0e1be6ce30ae42f3efe0128069a18e11022dca5b Mon Sep 17 00:00:00 2001 From: JPVenson Date: Mon, 16 Jun 2025 00:21:11 +0300 Subject: Use proper scheduler that honors the parallel task limit (#14281) --- Emby.Server.Implementations/ApplicationHost.cs | 3 +++ .../ScheduledTasks/Tasks/RefreshMediaLibraryTask.cs | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'Emby.Server.Implementations') diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs index 565d0f0c8..cbb0f6c56 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -62,6 +62,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.LibraryTaskScheduler; using MediaBrowser.Controller.LiveTv; using MediaBrowser.Controller.Lyrics; using MediaBrowser.Controller.MediaEncoding; @@ -552,6 +553,7 @@ namespace Emby.Server.Implementations serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); @@ -650,6 +652,7 @@ namespace Emby.Server.Implementations CollectionFolder.ApplicationHost = this; Folder.UserViewManager = Resolve(); Folder.CollectionManager = Resolve(); + Folder.LimitedConcurrencyLibraryScheduler = Resolve(); Episode.MediaEncoder = Resolve(); UserView.TVSeriesManager = Resolve(); Video.RecordingsManager = Resolve(); diff --git a/Emby.Server.Implementations/ScheduledTasks/Tasks/RefreshMediaLibraryTask.cs b/Emby.Server.Implementations/ScheduledTasks/Tasks/RefreshMediaLibraryTask.cs index c96843199..1865189d0 100644 --- a/Emby.Server.Implementations/ScheduledTasks/Tasks/RefreshMediaLibraryTask.cs +++ b/Emby.Server.Implementations/ScheduledTasks/Tasks/RefreshMediaLibraryTask.cs @@ -54,12 +54,12 @@ public class RefreshMediaLibraryTask : IScheduledTask } /// - public Task ExecuteAsync(IProgress progress, CancellationToken cancellationToken) + public async Task ExecuteAsync(IProgress progress, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); progress.Report(0); - return ((LibraryManager)_libraryManager).ValidateMediaLibraryInternal(progress, cancellationToken); + await ((LibraryManager)_libraryManager).ValidateMediaLibraryInternal(progress, cancellationToken).ConfigureAwait(false); } } -- cgit v1.2.3