Refactor ff queue size (#7116)

* Refactor queue size

* Only use enabled cameras

* Formatting
This commit is contained in:
Nicolas Mowen 2023-07-14 05:29:11 -06:00 committed by GitHub
parent 6adc810145
commit 3a0c36e8db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 8 deletions

View File

@ -210,22 +210,34 @@ class FrigateApp:
def init_queues(self) -> None: def init_queues(self) -> None:
# Queues for clip processing # Queues for clip processing
self.event_queue: Queue = ff.Queue(DEFAULT_QUEUE_BUFFER_SIZE) self.event_queue: Queue = ff.Queue(
self.event_processed_queue: Queue = ff.Queue(DEFAULT_QUEUE_BUFFER_SIZE) 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( 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 # Queue for cameras to push tracked objects to
self.detected_frames_queue: Queue = mp.Queue( 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 # 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 # 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 # Queue for inter process communication
self.inter_process_queue: Queue = ff.Queue(DEFAULT_QUEUE_BUFFER_SIZE) self.inter_process_queue: Queue = ff.Queue(DEFAULT_QUEUE_BUFFER_SIZE)

View File

@ -49,4 +49,4 @@ MAX_PLAYLIST_SECONDS = 7200 # support 2 hour segments for a single playlist to
# Queue Values # Queue Values
DEFAULT_QUEUE_BUFFER_SIZE = 2000 * 1000 # 2MB DEFAULT_QUEUE_BUFFER_SIZE = 1000 * 1000 # 1MB

View File

@ -917,7 +917,7 @@ def create_event(camera_name, label):
except Exception as e: except Exception as e:
return make_response( return make_response(
jsonify({"success": False, "message": f"An unknown error occurred: {e}"}), jsonify({"success": False, "message": f"An unknown error occurred: {e}"}),
404, 500,
) )
return make_response( return make_response(