Przeglądaj źródła

Increased interval to 1050ms and moved to class scope

Review comments from JustAMan.
PloughPuff 6 lat temu
rodzic
commit
f8bb7a7ff4

+ 9 - 8
MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs

@@ -33,6 +33,12 @@ namespace MediaBrowser.Providers.Music
 
         public readonly string MusicBrainzBaseUrl;
 
+        // The Jellyfin user-agent is unrestricted but source IP must not exceed
+        // one request per second, therefore we rate limit to avoid throttling.
+        // Be prudent, use a value slightly above the minimun required.
+        // https://musicbrainz.org/doc/XML_Web_Service/Rate_Limiting
+        private const long MusicBrainzQueryIntervalMs = 1050u;
+
         public MusicBrainzAlbumProvider(
             IHttpClient httpClient,
             IApplicationHost appHost,
@@ -715,15 +721,10 @@ namespace MediaBrowser.Providers.Music
         /// </summary>
         internal async Task<HttpResponseInfo> GetMusicBrainzResponse(string url, CancellationToken cancellationToken)
         {
-            // The Jellyfin user-agent is unrestricted but source IP must not exceed
-            // one request per second, therefore we rate limit to avoid throttling
-            // https://musicbrainz.org/doc/XML_Web_Service/Rate_Limiting
-            const long QueryIntervalMs = 1000u;
-
-            // Only delay if necessary
-            if (_stopWatchMusicBrainz.ElapsedMilliseconds < QueryIntervalMs)
+            if (_stopWatchMusicBrainz.ElapsedMilliseconds < MusicBrainzQueryIntervalMs)
             {
-                var delayMs = QueryIntervalMs - _stopWatchMusicBrainz.ElapsedMilliseconds;
+                // MusicBrainz is extremely adamant about limiting to one request per second
+                var delayMs = MusicBrainzQueryIntervalMs - _stopWatchMusicBrainz.ElapsedMilliseconds;
                 await Task.Delay((int)delayMs, cancellationToken).ConfigureAwait(false);
             }