diff --git a/MediaBrowser.Providers/Movies/MovieDbProvider.cs b/MediaBrowser.Providers/Movies/MovieDbProvider.cs index fe3e1f358a..4aa24bf5d9 100644 --- a/MediaBrowser.Providers/Movies/MovieDbProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbProvider.cs @@ -366,14 +366,27 @@ namespace MediaBrowser.Providers.Movies return mainResult; } + private static long _lastRequestTicks; + private static int requestIntervalMs = 100; + /// /// Gets the movie db response. /// - internal Task GetMovieDbResponse(HttpRequestOptions options) + internal async Task GetMovieDbResponse(HttpRequestOptions options) { + var delayTicks = (requestIntervalMs * 10000) - (DateTime.UtcNow.Ticks - _lastRequestTicks); + var delayMs = Math.Min(delayTicks / 10000, requestIntervalMs); + + if (delayMs > 0) + { + _logger.Debug("Throttling Tmdb by {0} ms", delayMs); + await Task.Delay(Convert.ToInt32(delayMs)).ConfigureAwait(false); + } + options.ResourcePool = MovieDbResourcePool; + _lastRequestTicks = DateTime.UtcNow.Ticks; - return _httpClient.Get(options); + return await _httpClient.Get(options).ConfigureAwait(false); } public TheMovieDbOptions GetTheMovieDbOptions()