Only query 5 movies ahead

This commit is contained in:
ta264 2020-05-24 22:44:44 +01:00
parent 9ca03ba450
commit 38c5989695
1 changed files with 10 additions and 9 deletions

View File

@ -206,11 +206,10 @@ namespace NzbDrone.Core.Movies
.Where(movie => (updatedTMDBMovies.Count == 0 && _checkIfMovieShouldBeRefreshed.ShouldRefresh(movie)) || .Where(movie => (updatedTMDBMovies.Count == 0 && _checkIfMovieShouldBeRefreshed.ShouldRefresh(movie)) ||
updatedTMDBMovies.Contains(movie.TmdbId) || updatedTMDBMovies.Contains(movie.TmdbId) ||
message.Trigger == CommandTrigger.Manual) message.Trigger == CommandTrigger.Manual)
.ToDictionary(x => _movieInfo.GetMovieInfoAsync(x.TmdbId), x => x); .ToList();
var tasks = toRefresh.Keys.ToList(); var tasks = toRefresh.Take(5).Select(x => _movieInfo.GetMovieInfoAsync(x.TmdbId)).ToList();
var skipped = allMovie.Except(toRefresh);
var skipped = allMovie.Except(toRefresh.Values);
foreach (var movie in skipped) foreach (var movie in skipped)
{ {
@ -218,16 +217,18 @@ namespace NzbDrone.Core.Movies
RescanMovie(movie, false, trigger); RescanMovie(movie, false, trigger);
} }
while (tasks.Count > 0) for (var i = 0; i < toRefresh.Count; i++)
{ {
var finishedTask = Task.WhenAny(tasks).GetAwaiter().GetResult(); var movie = toRefresh[i];
tasks.Remove(finishedTask);
var movie = toRefresh[finishedTask]; if (i + 5 < toRefresh.Count)
{
tasks.Add(_movieInfo.GetMovieInfoAsync(toRefresh[i + 5].TmdbId));
}
try try
{ {
RefreshMovieInfo(movie, finishedTask); RefreshMovieInfo(movie, tasks[i]);
} }
catch (MovieNotFoundException) catch (MovieNotFoundException)
{ {