From 1007f242002b77db50e004a5a937395fe60f9289 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 16 Sep 2013 22:08:18 -0400 Subject: reduce task allocations by making IBN api synchronous --- .../Library/Validators/ArtistsValidator.cs | 13 +++++++------ .../Library/Validators/GameGenresValidator.cs | 10 +++++----- .../Library/Validators/GenresValidator.cs | 8 +++++--- .../Library/Validators/MusicGenresValidator.cs | 8 +++++--- .../Library/Validators/PeoplePostScanTask.cs | 7 +++---- .../Library/Validators/StudiosValidator.cs | 8 +++++--- 6 files changed, 30 insertions(+), 24 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Library/Validators') diff --git a/MediaBrowser.Server.Implementations/Library/Validators/ArtistsValidator.cs b/MediaBrowser.Server.Implementations/Library/Validators/ArtistsValidator.cs index 54d816cb0..f41a2e60c 100644 --- a/MediaBrowser.Server.Implementations/Library/Validators/ArtistsValidator.cs +++ b/MediaBrowser.Server.Implementations/Library/Validators/ArtistsValidator.cs @@ -24,7 +24,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators /// /// The _library manager /// - private readonly LibraryManager _libraryManager; + private readonly ILibraryManager _libraryManager; /// /// The _user manager @@ -42,7 +42,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators /// The library manager. /// The user manager. /// The logger. - public ArtistsValidator(LibraryManager libraryManager, IUserManager userManager, ILogger logger) + public ArtistsValidator(ILibraryManager libraryManager, IUserManager userManager, ILogger logger) { _libraryManager = libraryManager; _userManager = userManager; @@ -65,7 +65,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators var innerProgress = new ActionableProgress(); innerProgress.RegisterAction(pct => progress.Report(pct * .8)); - + var allArtists = await GetAllArtists(allSongs, cancellationToken, innerProgress).ConfigureAwait(false); progress.Report(80); @@ -79,7 +79,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators foreach (var artist in allArtists) { cancellationToken.ThrowIfCancellationRequested(); - + artist.ValidateImages(); artist.ValidateBackdrops(); @@ -230,8 +230,9 @@ namespace MediaBrowser.Server.Implementations.Library.Validators try { - var artistItem = await _libraryManager.GetArtist(currentArtist, cancellationToken, true, true) - .ConfigureAwait(false); + var artistItem = _libraryManager.GetArtist(currentArtist); + + await artistItem.RefreshMetadata(cancellationToken).ConfigureAwait(false); returnArtists.Add(artistItem); } diff --git a/MediaBrowser.Server.Implementations/Library/Validators/GameGenresValidator.cs b/MediaBrowser.Server.Implementations/Library/Validators/GameGenresValidator.cs index eba7193e0..eb89210ff 100644 --- a/MediaBrowser.Server.Implementations/Library/Validators/GameGenresValidator.cs +++ b/MediaBrowser.Server.Implementations/Library/Validators/GameGenresValidator.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators /// /// The _library manager /// - private readonly LibraryManager _libraryManager; + private readonly ILibraryManager _libraryManager; /// /// The _user manager @@ -26,7 +26,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators /// private readonly ILogger _logger; - public GameGenresValidator(LibraryManager libraryManager, IUserManager userManager, ILogger logger) + public GameGenresValidator(ILibraryManager libraryManager, IUserManager userManager, ILogger logger) { _libraryManager = libraryManager; _userManager = userManager; @@ -47,8 +47,6 @@ namespace MediaBrowser.Server.Implementations.Library.Validators .Select(i => new Tuple>(i.Id, i.RootFolder.GetRecursiveChildren(i).OfType().ToList())) .ToList(); - var allLibraryItems = allItems; - var masterDictionary = new Dictionary>>(StringComparer.OrdinalIgnoreCase); // Populate counts of items @@ -99,7 +97,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators private async Task UpdateItemByNameCounts(string name, CancellationToken cancellationToken, Dictionary> counts) { - var itemByName = await _libraryManager.GetGameGenre(name, cancellationToken, true, true).ConfigureAwait(false); + var itemByName = _libraryManager.GetGameGenre(name); foreach (var libraryId in counts.Keys) { @@ -107,6 +105,8 @@ namespace MediaBrowser.Server.Implementations.Library.Validators itemByName.UserItemCounts[libraryId] = itemCounts; } + + await itemByName.RefreshMetadata(cancellationToken).ConfigureAwait(false); } private void SetItemCounts(Guid userId, IEnumerable allItems, Dictionary>> masterDictionary) diff --git a/MediaBrowser.Server.Implementations/Library/Validators/GenresValidator.cs b/MediaBrowser.Server.Implementations/Library/Validators/GenresValidator.cs index c605961f7..9a34dd1b0 100644 --- a/MediaBrowser.Server.Implementations/Library/Validators/GenresValidator.cs +++ b/MediaBrowser.Server.Implementations/Library/Validators/GenresValidator.cs @@ -15,7 +15,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators /// /// The _library manager /// - private readonly LibraryManager _libraryManager; + private readonly ILibraryManager _libraryManager; /// /// The _user manager @@ -27,7 +27,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators /// private readonly ILogger _logger; - public GenresValidator(LibraryManager libraryManager, IUserManager userManager, ILogger logger) + public GenresValidator(ILibraryManager libraryManager, IUserManager userManager, ILogger logger) { _libraryManager = libraryManager; _userManager = userManager; @@ -102,7 +102,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators private async Task UpdateItemByNameCounts(string name, CancellationToken cancellationToken, Dictionary> counts) { - var itemByName = await _libraryManager.GetGenre(name, cancellationToken, true, true).ConfigureAwait(false); + var itemByName = _libraryManager.GetGenre(name); foreach (var libraryId in counts.Keys) { @@ -110,6 +110,8 @@ namespace MediaBrowser.Server.Implementations.Library.Validators itemByName.UserItemCounts[libraryId] = itemCounts; } + + await itemByName.RefreshMetadata(cancellationToken).ConfigureAwait(false); } private void SetItemCounts(Guid userId, IEnumerable allItems, Dictionary>> masterDictionary) diff --git a/MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs b/MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs index 9063027ec..1b211d5f4 100644 --- a/MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs +++ b/MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs @@ -15,7 +15,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators /// /// The _library manager /// - private readonly LibraryManager _libraryManager; + private readonly ILibraryManager _libraryManager; /// /// The _user manager @@ -27,7 +27,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators /// private readonly ILogger _logger; - public MusicGenresValidator(LibraryManager libraryManager, IUserManager userManager, ILogger logger) + public MusicGenresValidator(ILibraryManager libraryManager, IUserManager userManager, ILogger logger) { _libraryManager = libraryManager; _userManager = userManager; @@ -102,7 +102,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators private async Task UpdateItemByNameCounts(string name, CancellationToken cancellationToken, Dictionary> counts) { - var itemByName = await _libraryManager.GetMusicGenre(name, cancellationToken, true, true).ConfigureAwait(false); + var itemByName = _libraryManager.GetMusicGenre(name); foreach (var libraryId in counts.Keys) { @@ -110,6 +110,8 @@ namespace MediaBrowser.Server.Implementations.Library.Validators itemByName.UserItemCounts[libraryId] = itemCounts; } + + await itemByName.RefreshMetadata(cancellationToken).ConfigureAwait(false); } private void SetItemCounts(Guid userId, IEnumerable allItems, Dictionary>> masterDictionary) diff --git a/MediaBrowser.Server.Implementations/Library/Validators/PeoplePostScanTask.cs b/MediaBrowser.Server.Implementations/Library/Validators/PeoplePostScanTask.cs index 708f8bfa4..3c1528d01 100644 --- a/MediaBrowser.Server.Implementations/Library/Validators/PeoplePostScanTask.cs +++ b/MediaBrowser.Server.Implementations/Library/Validators/PeoplePostScanTask.cs @@ -41,11 +41,10 @@ namespace MediaBrowser.Server.Implementations.Library.Validators /// Task. public Task Run(IProgress progress, CancellationToken cancellationToken) { - return RunInternal(progress, cancellationToken); - //return Task.Run(() => RunInternal(progress, cancellationToken)); + return Task.Run(() => RunInternal(progress, cancellationToken)); } - private async Task RunInternal(IProgress progress, CancellationToken cancellationToken) + private void RunInternal(IProgress progress, CancellationToken cancellationToken) { var allItems = _libraryManager.RootFolder.RecursiveChildren.ToList(); @@ -91,7 +90,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators { var counts = masterDictionary[name]; - var itemByName = await _libraryManager.GetPerson(name).ConfigureAwait(false); + var itemByName = _libraryManager.GetPerson(name); foreach (var libraryId in counts.Keys) { diff --git a/MediaBrowser.Server.Implementations/Library/Validators/StudiosValidator.cs b/MediaBrowser.Server.Implementations/Library/Validators/StudiosValidator.cs index 202cd9414..a4d880329 100644 --- a/MediaBrowser.Server.Implementations/Library/Validators/StudiosValidator.cs +++ b/MediaBrowser.Server.Implementations/Library/Validators/StudiosValidator.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators /// /// The _library manager /// - private readonly LibraryManager _libraryManager; + private readonly ILibraryManager _libraryManager; /// /// The _user manager @@ -26,7 +26,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators /// private readonly ILogger _logger; - public StudiosValidator(LibraryManager libraryManager, IUserManager userManager, ILogger logger) + public StudiosValidator(ILibraryManager libraryManager, IUserManager userManager, ILogger logger) { _libraryManager = libraryManager; _userManager = userManager; @@ -99,7 +99,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators private async Task UpdateItemByNameCounts(string name, CancellationToken cancellationToken, Dictionary> counts) { - var itemByName = await _libraryManager.GetStudio(name, cancellationToken, true, true).ConfigureAwait(false); + var itemByName = _libraryManager.GetStudio(name); foreach (var libraryId in counts.Keys) { @@ -107,6 +107,8 @@ namespace MediaBrowser.Server.Implementations.Library.Validators itemByName.UserItemCounts[libraryId] = itemCounts; } + + await itemByName.RefreshMetadata(cancellationToken).ConfigureAwait(false); } private void SetItemCounts(Guid userId, IEnumerable allItems, Dictionary>> masterDictionary) -- cgit v1.2.3