From ea04d2ea2c42f71e13be137dd6d3bcfd2363ec47 Mon Sep 17 00:00:00 2001
From: Chris Pastl <chris@crispybits.app>
Date: Mon, 20 May 2024 00:26:39 +0200
Subject: [PATCH] refactor: decrease log amount

---
 src/aura_engine/scheduling/scheduler.py | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/aura_engine/scheduling/scheduler.py b/src/aura_engine/scheduling/scheduler.py
index 7082a8b4..c2cabf5f 100644
--- a/src/aura_engine/scheduling/scheduler.py
+++ b/src/aura_engine/scheduling/scheduler.py
@@ -193,16 +193,24 @@ class PlayCommand(EngineExecutor):
         Args:
             items ([PlaylistItem]): The set of playlist items to be played.
         """
+        retry_interval = 1
+        log_interval = 30
+        last_log = 0
+
         items_str = ResourceUtil.get_items_string(items)
         self.logger.info(SU.cyan(f"=== play('{items_str}') ==="))
+
         last_item: PlaylistItem = items[-1]
         while not last_item.play.is_ready():
-            msg = f"PLAY: Item(s) not yet ready to be played" f" (Items: {items_str})"
-            self.logger.critical(SU.red(msg))
+            now = SU.timestamp()
+            if now - last_log > log_interval:
+                msg = f"PLAY: Item(s) not yet ready to be played" f" (Items: {items_str})"
+                self.logger.critical(SU.red(msg))
+                last_log = now
             if last_item.play.state == PlayState.PlayStateType.FAILED:
                 self.logger.info("PLAY: Preloading failed - skipping play")
                 return
-            time.sleep(2)
+            time.sleep(retry_interval)
         self.engine.player.play(items[0], engine.Player.TransitionType.FADE)
         timetable_renderer: utils.TimetableRenderer = self.engine.scheduler.timetable_renderer
         self.logger.info(timetable_renderer.get_ascii_timeslots())
-- 
GitLab