diff options
| author | Gary Wilber <Spacetech326@gmail.com> | 2020-12-02 18:51:53 -0800 |
|---|---|---|
| committer | Gary Wilber <Spacetech326@gmail.com> | 2020-12-02 18:51:53 -0800 |
| commit | f4edca7c2790207b5be9abb3b49029c9fbe04828 (patch) | |
| tree | 3da18152bbe5e1b168f58fb97a0bcdeea4a325b2 /MediaBrowser.Controller/BaseItemManager | |
| parent | e8cb9cea7d04da5896cdb2ac1f71b764e8143faa (diff) | |
Move MetadataRefreshThrottler to BaseItemManager
Diffstat (limited to 'MediaBrowser.Controller/BaseItemManager')
| -rw-r--r-- | MediaBrowser.Controller/BaseItemManager/BaseItemManager.cs | 17 | ||||
| -rw-r--r-- | MediaBrowser.Controller/BaseItemManager/IBaseItemManager.cs | 9 |
2 files changed, 24 insertions, 2 deletions
diff --git a/MediaBrowser.Controller/BaseItemManager/BaseItemManager.cs b/MediaBrowser.Controller/BaseItemManager/BaseItemManager.cs index 67aa7f338..0c8fa8244 100644 --- a/MediaBrowser.Controller/BaseItemManager/BaseItemManager.cs +++ b/MediaBrowser.Controller/BaseItemManager/BaseItemManager.cs @@ -1,5 +1,6 @@ -using System; +using System; using System.Linq; +using System.Threading; using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; @@ -19,9 +20,23 @@ namespace MediaBrowser.Controller.BaseItemManager public BaseItemManager(IServerConfigurationManager serverConfigurationManager) { _serverConfigurationManager = serverConfigurationManager; + + MetadataRefreshThrottler = new Lazy<SemaphoreSlim>(() => { + var concurrency = _serverConfigurationManager.Configuration.LibraryMetadataRefreshConcurrency; + + if (concurrency <= 0) + { + concurrency = Environment.ProcessorCount; + } + + return new SemaphoreSlim(concurrency); + }); } /// <inheritdoc /> + public Lazy<SemaphoreSlim> MetadataRefreshThrottler { get; private set; } + + /// <inheritdoc /> public bool IsMetadataFetcherEnabled(BaseItem baseItem, LibraryOptions libraryOptions, string name) { if (baseItem is Channel) diff --git a/MediaBrowser.Controller/BaseItemManager/IBaseItemManager.cs b/MediaBrowser.Controller/BaseItemManager/IBaseItemManager.cs index ee4d3dcdc..d5f36dc2e 100644 --- a/MediaBrowser.Controller/BaseItemManager/IBaseItemManager.cs +++ b/MediaBrowser.Controller/BaseItemManager/IBaseItemManager.cs @@ -1,4 +1,6 @@ -using MediaBrowser.Controller.Entities; +using System; +using System.Threading; +using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Configuration; namespace MediaBrowser.Controller.BaseItemManager @@ -9,6 +11,11 @@ namespace MediaBrowser.Controller.BaseItemManager public interface IBaseItemManager { /// <summary> + /// Gets the semaphore used to limit the amount of concurrent metadata refreshes. + /// </summary> + Lazy<SemaphoreSlim> MetadataRefreshThrottler { get; } + + /// <summary> /// Is metadata fetcher enabled. /// </summary> /// <param name="baseItem">The base item.</param> |
