throttle metadata retrieval
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Tue, 30 Jul 2024 15:14:52 +0000 (17:14 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Tue, 30 Jul 2024 15:14:52 +0000 (17:14 +0200)
music_assistant/server/controllers/metadata.py

index d3f8874771138efe1ada7ec824b59cce5e604b15..db6f7e1e968a1f61d1145cc1d5f2a564725ec10c 100644 (file)
@@ -246,6 +246,8 @@ class MetaDataController(CoreController):
                 limit=250, order_by="random", extra_query=query
             ):
                 await self._update_artist_metadata(artist)
+                # we really need to throttle this
+                await asyncio.sleep(10)
 
             query = (
                 f"WHERE json_extract({DB_TABLE_ALBUMS}.metadata,'$.last_refresh') ISNULL "
@@ -255,6 +257,19 @@ class MetaDataController(CoreController):
                 limit=250, order_by="random", extra_query=query
             ):
                 await self._update_album_metadata(album)
+                # we really need to throttle this
+                await asyncio.sleep(10)
+
+            query = (
+                f"WHERE json_extract({DB_TABLE_PLAYLISTS}.metadata,'$.last_refresh') ISNULL "
+                f"OR json_extract({DB_TABLE_PLAYLISTS}.metadata,'$.last_refresh') < {timestamp}"
+            )
+            for playlist in await self.mass.music.playlists.library_items(
+                limit=250, order_by="random", extra_query=query
+            ):
+                await self._update_playlist_metadata(playlist)
+                # we really need to throttle this
+                await asyncio.sleep(10)
 
             query = (
                 f"WHERE json_extract({DB_TABLE_TRACKS}.metadata,'$.last_refresh') ISNULL "
@@ -264,15 +279,9 @@ class MetaDataController(CoreController):
                 limit=50, order_by="random", extra_query=query
             ):
                 await self._update_track_metadata(track)
+                # we really need to throttle this
+                await asyncio.sleep(30)
 
-            query = (
-                f"WHERE json_extract({DB_TABLE_PLAYLISTS}.metadata,'$.last_refresh') ISNULL "
-                f"OR json_extract({DB_TABLE_PLAYLISTS}.metadata,'$.last_refresh') < {timestamp}"
-            )
-            for playlist in await self.mass.music.playlists.library_items(
-                limit=250, order_by="random", extra_query=query
-            ):
-                await self._update_playlist_metadata(playlist)
         finally:
             self._scanner_running = False