debug timeouts

This commit is contained in:
Josh Hawkins 2024-09-23 14:11:31 -05:00
parent f58e230122
commit 0e312af43b

View File

@ -70,11 +70,14 @@ class EmbeddingMaintainer(threading.Thread):
def _process_updates(self) -> None: def _process_updates(self) -> None:
"""Process event updates""" """Process event updates"""
update = self.event_subscriber.check_for_update() logger.info("processing event updates")
update = self.event_subscriber.check_for_update(timeout=1)
if update is None: if update is None:
return return
logger.info("not returning from _process_updates")
source_type, _, camera, data = update source_type, _, camera, data = update
if not camera or source_type != EventTypeEnum.tracked_object: if not camera or source_type != EventTypeEnum.tracked_object:
@ -98,12 +101,14 @@ class EmbeddingMaintainer(threading.Thread):
def _process_finalized(self) -> None: def _process_finalized(self) -> None:
"""Process the end of an event.""" """Process the end of an event."""
while True:
ended = self.event_end_subscriber.check_for_update()
if ended == None: logger.info("processing finalized")
break ended = self.event_end_subscriber.check_for_update(timeout=1)
if ended is None:
return
logger.info("not returning from _process_finalized")
event_id, camera, updated_db = ended event_id, camera, updated_db = ended
camera_config = self.config.cameras[camera] camera_config = self.config.cameras[camera]
@ -111,11 +116,11 @@ class EmbeddingMaintainer(threading.Thread):
try: try:
event: Event = Event.get(Event.id == event_id) event: Event = Event.get(Event.id == event_id)
except DoesNotExist: except DoesNotExist:
continue return
# Skip the event if not an object # Skip the event if not an object
if event.data.get("type") != "object": if event.data.get("type") != "object":
continue return
# Extract valid event metadata # Extract valid event metadata
metadata = get_metadata(event) metadata = get_metadata(event)
@ -136,10 +141,7 @@ class EmbeddingMaintainer(threading.Thread):
daemon=True, daemon=True,
args=( args=(
event, event,
[ [data["thumbnail"] for data in self.tracked_events[event_id]]
data["thumbnail"]
for data in self.tracked_events[event_id]
]
if len(self.tracked_events.get(event_id, [])) > 0 if len(self.tracked_events.get(event_id, [])) > 0
else [thumbnail], else [thumbnail],
metadata, metadata,
@ -153,12 +155,14 @@ class EmbeddingMaintainer(threading.Thread):
def _process_event_metadata(self): def _process_event_metadata(self):
# Check for regenerate description requests # Check for regenerate description requests
logger.info("processing event metadata") logger.info("processing event metadata")
(topic, event_id) = self.event_metadata_subscriber.check_for_update() (topic, event_id) = self.event_metadata_subscriber.check_for_update(timeout=1)
logger.info(f"in init in maintainer, {topic} {event_id}") logger.info(f"in init in maintainer, {topic} {event_id}")
if topic is None: if topic is None:
return return
logger.info("not returning from _process_event_metadata")
if event_id: if event_id:
logger.info(f"in maintainer: {event_id}") logger.info(f"in maintainer: {event_id}")
# self.handle_regenerate_description(event_id) # self.handle_regenerate_description(event_id)