From 67096d414169288e10abf5dc9636083a1a9f860e Mon Sep 17 00:00:00 2001 From: ziesorx Date: Thu, 25 Sep 2025 01:20:07 +0700 Subject: [PATCH] fix: minor bug fix --- core/storage/license_plate.py | 16 +++++++++++++++- requirements.base.txt | 3 ++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/core/storage/license_plate.py b/core/storage/license_plate.py index b0c7194..4c5b703 100644 --- a/core/storage/license_plate.py +++ b/core/storage/license_plate.py @@ -99,11 +99,13 @@ class LicensePlateManager: async def _listen_for_messages(self): """Listen for messages on the license_results channel.""" + listen_generator = None try: if not self.pubsub: return - async for message in self.pubsub.listen(): + listen_generator = self.pubsub.listen() + async for message in listen_generator: if message['type'] == 'message': try: # Log the raw message from Redis channel @@ -121,8 +123,20 @@ class LicensePlateManager: except asyncio.CancelledError: logger.info("License plate subscription task cancelled") + # Properly close the async generator + if listen_generator is not None: + try: + await listen_generator.aclose() + except Exception as e: + logger.debug(f"Error closing listen generator: {e}") except Exception as e: logger.error(f"Error in license plate message listener: {e}", exc_info=True) + # Properly close the async generator on error + if listen_generator is not None: + try: + await listen_generator.aclose() + except Exception as e: + logger.debug(f"Error closing listen generator: {e}") async def _process_license_plate_result(self, data: Dict[str, Any]): """ diff --git a/requirements.base.txt b/requirements.base.txt index af22160..094f332 100644 --- a/requirements.base.txt +++ b/requirements.base.txt @@ -4,4 +4,5 @@ ultralytics opencv-python scipy filterpy -psycopg2-binary \ No newline at end of file +psycopg2-binary +lap>=0.5.12 \ No newline at end of file