From 377b78af11520f6eebac70a9a8fac9e95f02bbd3 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Wed, 30 Apr 2025 09:29:16 -0500 Subject: [PATCH] Change default zmq timeout (#17971) * update default zmq timeout * use lower default timeout * keep longer timeout for event maintainer * remove default * remove --- frigate/comms/event_metadata_updater.py | 3 --- frigate/comms/zmq_proxy.py | 6 +++++- frigate/embeddings/maintainer.py | 10 +++++----- frigate/events/maintainer.py | 2 +- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/frigate/comms/event_metadata_updater.py b/frigate/comms/event_metadata_updater.py index 42a3419ce..6adcaf4be 100644 --- a/frigate/comms/event_metadata_updater.py +++ b/frigate/comms/event_metadata_updater.py @@ -39,9 +39,6 @@ class EventMetadataSubscriber(Subscriber): def __init__(self, topic: EventMetadataTypeEnum) -> None: super().__init__(topic.value) - def check_for_update(self, timeout: float = 1) -> tuple | None: - return super().check_for_update(timeout) - def _return_object(self, topic: str, payload: tuple) -> tuple: if payload is None: return (None, None) diff --git a/frigate/comms/zmq_proxy.py b/frigate/comms/zmq_proxy.py index 1661cfcc5..6a90d6887 100644 --- a/frigate/comms/zmq_proxy.py +++ b/frigate/comms/zmq_proxy.py @@ -6,6 +6,8 @@ from typing import Optional import zmq +from frigate.const import FAST_QUEUE_TIMEOUT + SOCKET_PUB = "ipc:///tmp/cache/proxy_pub" SOCKET_SUB = "ipc:///tmp/cache/proxy_sub" @@ -77,7 +79,9 @@ class Subscriber: self.socket.setsockopt_string(zmq.SUBSCRIBE, self.topic) self.socket.connect(SOCKET_SUB) - def check_for_update(self, timeout: float = 1) -> Optional[tuple[str, any]]: + def check_for_update( + self, timeout: float = FAST_QUEUE_TIMEOUT + ) -> Optional[tuple[str, any]]: """Returns message or None if no update.""" try: has_update, _, _ = zmq.select([self.socket], [], [], timeout) diff --git a/frigate/embeddings/maintainer.py b/frigate/embeddings/maintainer.py index d9363d1d4..f62a5476b 100644 --- a/frigate/embeddings/maintainer.py +++ b/frigate/embeddings/maintainer.py @@ -231,7 +231,7 @@ class EmbeddingMaintainer(threading.Thread): def _process_updates(self) -> None: """Process event updates""" - update = self.event_subscriber.check_for_update(timeout=0.01) + update = self.event_subscriber.check_for_update() if update is None: return @@ -324,7 +324,7 @@ class EmbeddingMaintainer(threading.Thread): def _process_finalized(self) -> None: """Process the end of an event.""" while True: - ended = self.event_end_subscriber.check_for_update(timeout=0.01) + ended = self.event_end_subscriber.check_for_update() if ended == None: break @@ -420,7 +420,7 @@ class EmbeddingMaintainer(threading.Thread): def _process_recordings_updates(self) -> None: """Process recordings updates.""" while True: - recordings_data = self.recordings_subscriber.check_for_update(timeout=0.01) + recordings_data = self.recordings_subscriber.check_for_update() if recordings_data == None: break @@ -437,7 +437,7 @@ class EmbeddingMaintainer(threading.Thread): def _process_event_metadata(self): # Check for regenerate description requests - (topic, payload) = self.event_metadata_subscriber.check_for_update(timeout=0.01) + (topic, payload) = self.event_metadata_subscriber.check_for_update() if topic is None: return @@ -451,7 +451,7 @@ class EmbeddingMaintainer(threading.Thread): def _process_dedicated_lpr(self) -> None: """Process event updates""" - (topic, data) = self.detection_subscriber.check_for_update(timeout=0.01) + (topic, data) = self.detection_subscriber.check_for_update() if topic is None: return diff --git a/frigate/events/maintainer.py b/frigate/events/maintainer.py index 844039b0d..2b0fc4193 100644 --- a/frigate/events/maintainer.py +++ b/frigate/events/maintainer.py @@ -75,7 +75,7 @@ class EventProcessor(threading.Thread): ).execute() while not self.stop_event.is_set(): - update = self.event_receiver.check_for_update() + update = self.event_receiver.check_for_update(timeout=1) if update == None: continue