浏览代码

Move hardcoded LibraryUpdateDuration to ServerConfiguration. Fixes #9893.

Signed-off-by: Frank Riley <fhriley@gmail.com>
Frank Riley 2 年之前
父节点
当前提交
1952a915e6

+ 11 - 12
Emby.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs

@@ -12,6 +12,7 @@ using System.Threading.Tasks;
 using Jellyfin.Data.Entities;
 using Jellyfin.Data.Events;
 using MediaBrowser.Controller.Channels;
+using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities.Audio;
 using MediaBrowser.Controller.Library;
@@ -26,12 +27,8 @@ namespace Emby.Server.Implementations.EntryPoints
 {
     public class LibraryChangedNotifier : IServerEntryPoint
     {
-        /// <summary>
-        /// The library update duration.
-        /// </summary>
-        private const int LibraryUpdateDuration = 30000;
-
         private readonly ILibraryManager _libraryManager;
+        private readonly IServerConfigurationManager _configurationManager;
         private readonly IProviderManager _providerManager;
         private readonly ISessionManager _sessionManager;
         private readonly IUserManager _userManager;
@@ -51,12 +48,14 @@ namespace Emby.Server.Implementations.EntryPoints
 
         public LibraryChangedNotifier(
             ILibraryManager libraryManager,
+            IServerConfigurationManager configurationManager,
             ISessionManager sessionManager,
             IUserManager userManager,
             ILogger<LibraryChangedNotifier> logger,
             IProviderManager providerManager)
         {
             _libraryManager = libraryManager;
+            _configurationManager = configurationManager;
             _sessionManager = sessionManager;
             _userManager = userManager;
             _logger = logger;
@@ -196,12 +195,12 @@ namespace Emby.Server.Implementations.EntryPoints
                     LibraryUpdateTimer = new Timer(
                         LibraryUpdateTimerCallback,
                         null,
-                        LibraryUpdateDuration,
-                        Timeout.Infinite);
+                        TimeSpan.FromSeconds(_configurationManager.Configuration.LibraryUpdateDuration),
+                        Timeout.InfiniteTimeSpan);
                 }
                 else
                 {
-                    LibraryUpdateTimer.Change(LibraryUpdateDuration, Timeout.Infinite);
+                    LibraryUpdateTimer.Change(TimeSpan.FromSeconds(_configurationManager.Configuration.LibraryUpdateDuration), Timeout.InfiniteTimeSpan);
                 }
 
                 if (e.Item.GetParent() is Folder parent)
@@ -229,11 +228,11 @@ namespace Emby.Server.Implementations.EntryPoints
             {
                 if (LibraryUpdateTimer is null)
                 {
-                    LibraryUpdateTimer = new Timer(LibraryUpdateTimerCallback, null, LibraryUpdateDuration, Timeout.Infinite);
+                    LibraryUpdateTimer = new Timer(LibraryUpdateTimerCallback, null, TimeSpan.FromSeconds(_configurationManager.Configuration.LibraryUpdateDuration), Timeout.InfiniteTimeSpan);
                 }
                 else
                 {
-                    LibraryUpdateTimer.Change(LibraryUpdateDuration, Timeout.Infinite);
+                    LibraryUpdateTimer.Change(TimeSpan.FromSeconds(_configurationManager.Configuration.LibraryUpdateDuration), Timeout.InfiniteTimeSpan);
                 }
 
                 _itemsUpdated.Add(e.Item);
@@ -256,11 +255,11 @@ namespace Emby.Server.Implementations.EntryPoints
             {
                 if (LibraryUpdateTimer is null)
                 {
-                    LibraryUpdateTimer = new Timer(LibraryUpdateTimerCallback, null, LibraryUpdateDuration, Timeout.Infinite);
+                    LibraryUpdateTimer = new Timer(LibraryUpdateTimerCallback, null, TimeSpan.FromSeconds(_configurationManager.Configuration.LibraryUpdateDuration), Timeout.InfiniteTimeSpan);
                 }
                 else
                 {
-                    LibraryUpdateTimer.Change(LibraryUpdateDuration, Timeout.Infinite);
+                    LibraryUpdateTimer.Change(TimeSpan.FromSeconds(_configurationManager.Configuration.LibraryUpdateDuration), Timeout.InfiniteTimeSpan);
                 }
 
                 if (e.Parent is Folder parent)

+ 6 - 0
MediaBrowser.Model/Configuration/ServerConfiguration.cs

@@ -165,6 +165,12 @@ namespace MediaBrowser.Model.Configuration
         /// <value>The file watcher delay.</value>
         public int LibraryMonitorDelay { get; set; } = 60;
 
+        /// <summary>
+        /// Gets or sets the duration in seconds that we will wait after a library updated event before executing the library changed notification.
+        /// </summary>
+        /// <value>The library update duration.</value>
+        public int LibraryUpdateDuration { get; set; } = 30;
+
         /// <summary>
         /// Gets or sets the image saving convention.
         /// </summary>