From 3a0c36e8db3f8536f66b6ec44eea3f1d3fc951e6 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Fri, 14 Jul 2023 05:29:11 -0600 Subject: [PATCH] Refactor ff queue size (#7116) * Refactor queue size * Only use enabled cameras * Formatting --- frigate/app.py | 24 ++++++++++++++++++------ frigate/const.py | 2 +- frigate/http.py | 2 +- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/frigate/app.py b/frigate/app.py index b0ec223b4..4e5a1a802 100644 --- a/frigate/app.py +++ b/frigate/app.py @@ -210,22 +210,34 @@ class FrigateApp: def init_queues(self) -> None: # Queues for clip processing - self.event_queue: Queue = ff.Queue(DEFAULT_QUEUE_BUFFER_SIZE) - self.event_processed_queue: Queue = ff.Queue(DEFAULT_QUEUE_BUFFER_SIZE) + self.event_queue: Queue = ff.Queue( + DEFAULT_QUEUE_BUFFER_SIZE + * sum(camera.enabled for camera in self.config.cameras.values()) + ) + self.event_processed_queue: Queue = ff.Queue( + DEFAULT_QUEUE_BUFFER_SIZE + * sum(camera.enabled for camera in self.config.cameras.values()) + ) self.video_output_queue: Queue = mp.Queue( - maxsize=len(self.config.cameras.keys()) * 2 + maxsize=sum(camera.enabled for camera in self.config.cameras.values()) * 2 ) # Queue for cameras to push tracked objects to self.detected_frames_queue: Queue = mp.Queue( - maxsize=len(self.config.cameras.keys()) * 2 + maxsize=sum(camera.enabled for camera in self.config.cameras.values()) * 2 ) # Queue for recordings info - self.recordings_info_queue: Queue = ff.Queue(DEFAULT_QUEUE_BUFFER_SIZE) + self.recordings_info_queue: Queue = ff.Queue( + DEFAULT_QUEUE_BUFFER_SIZE + * sum(camera.enabled for camera in self.config.cameras.values()) + ) # Queue for timeline events - self.timeline_queue: Queue = ff.Queue(DEFAULT_QUEUE_BUFFER_SIZE) + self.timeline_queue: Queue = ff.Queue( + DEFAULT_QUEUE_BUFFER_SIZE + * sum(camera.enabled for camera in self.config.cameras.values()) + ) # Queue for inter process communication self.inter_process_queue: Queue = ff.Queue(DEFAULT_QUEUE_BUFFER_SIZE) diff --git a/frigate/const.py b/frigate/const.py index c508a83bf..c7c75c6b3 100644 --- a/frigate/const.py +++ b/frigate/const.py @@ -49,4 +49,4 @@ MAX_PLAYLIST_SECONDS = 7200 # support 2 hour segments for a single playlist to # Queue Values -DEFAULT_QUEUE_BUFFER_SIZE = 2000 * 1000 # 2MB +DEFAULT_QUEUE_BUFFER_SIZE = 1000 * 1000 # 1MB diff --git a/frigate/http.py b/frigate/http.py index 08201b177..f3e65381f 100644 --- a/frigate/http.py +++ b/frigate/http.py @@ -917,7 +917,7 @@ def create_event(camera_name, label): except Exception as e: return make_response( jsonify({"success": False, "message": f"An unknown error occurred: {e}"}), - 404, + 500, ) return make_response(