prevent duplicate jobs
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 21 Apr 2022 17:58:01 +0000 (19:58 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 21 Apr 2022 17:58:01 +0000 (19:58 +0200)
music_assistant/mass.py

index 044522a82cdffe452fb94787c37f9a758043c3a5..57ac924c7b52dcb2438655a30197aa3a41c2aec4 100644 (file)
@@ -130,8 +130,13 @@ class MusicAssistant:
 
         return remove_listener
 
-    def add_job(self, job: Coroutine, name: Optional[str] = None) -> None:
+    def add_job(
+        self, job: Coroutine, name: Optional[str] = None, allow_duplicate=False
+    ) -> None:
         """Add job to be (slowly) processed in the background (one by one)."""
+        if not allow_duplicate and name in self._job_names:
+            self.logger("Ignoring job %s because it is already in the queue", name)
+            return
         if not name:
             name = job.__qualname__ or job.__name__
         self._job_names.add(name)