mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-15 07:35:27 +03:00
Fix event cleanup
This commit is contained in:
parent
9928592266
commit
d5eab6c794
@ -117,7 +117,7 @@ class EmbeddingsContext:
|
|||||||
query_embedding = serialize(
|
query_embedding = serialize(
|
||||||
self.requestor.send_data(
|
self.requestor.send_data(
|
||||||
EmbeddingsRequestEnum.embed_thumbnail.value,
|
EmbeddingsRequestEnum.embed_thumbnail.value,
|
||||||
{"id": query.id, "thumbnail": query.thumbnail},
|
{"id": str(query.id), "thumbnail": str(query.thumbnail)},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
|
|||||||
@ -77,6 +77,10 @@ class EmbeddingMaintainer(threading.Thread):
|
|||||||
"""Process embeddings requests"""
|
"""Process embeddings requests"""
|
||||||
|
|
||||||
def handle_request(topic: str, data: str) -> str:
|
def handle_request(topic: str, data: str) -> str:
|
||||||
|
logger.debug(
|
||||||
|
f"Handling embeddings request of type {topic} with data {data}"
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if topic == EmbeddingsRequestEnum.embed_description.value:
|
if topic == EmbeddingsRequestEnum.embed_description.value:
|
||||||
return serialize(
|
return serialize(
|
||||||
@ -112,6 +116,7 @@ class EmbeddingMaintainer(threading.Thread):
|
|||||||
if not camera or source_type != EventTypeEnum.tracked_object:
|
if not camera or source_type != EventTypeEnum.tracked_object:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
logger.debug(f"Processing object update of type {source_type} on {camera}")
|
||||||
camera_config = self.config.cameras[camera]
|
camera_config = self.config.cameras[camera]
|
||||||
if data["id"] not in self.tracked_events:
|
if data["id"] not in self.tracked_events:
|
||||||
self.tracked_events[data["id"]] = []
|
self.tracked_events[data["id"]] = []
|
||||||
@ -141,6 +146,9 @@ class EmbeddingMaintainer(threading.Thread):
|
|||||||
break
|
break
|
||||||
|
|
||||||
event_id, camera, updated_db = ended
|
event_id, camera, updated_db = ended
|
||||||
|
logger.debug(
|
||||||
|
f"Processing finalized event for {camera} which updated the db: {updated_db}"
|
||||||
|
)
|
||||||
camera_config = self.config.cameras[camera]
|
camera_config = self.config.cameras[camera]
|
||||||
|
|
||||||
if updated_db:
|
if updated_db:
|
||||||
@ -234,6 +242,8 @@ class EmbeddingMaintainer(threading.Thread):
|
|||||||
if topic is None:
|
if topic is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
logger.debug(f"Handling event metadata for id {event_id} and source {source}")
|
||||||
|
|
||||||
if event_id:
|
if event_id:
|
||||||
self.handle_regenerate_description(event_id, source)
|
self.handle_regenerate_description(event_id, source)
|
||||||
|
|
||||||
|
|||||||
@ -8,10 +8,9 @@ from enum import Enum
|
|||||||
from multiprocessing.synchronize import Event as MpEvent
|
from multiprocessing.synchronize import Event as MpEvent
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from playhouse.sqliteq import SqliteQueueDatabase
|
|
||||||
|
|
||||||
from frigate.config import FrigateConfig
|
from frigate.config import FrigateConfig
|
||||||
from frigate.const import CLIPS_DIR
|
from frigate.const import CLIPS_DIR
|
||||||
|
from frigate.db.sqlitevecq import SqliteVecQueueDatabase
|
||||||
from frigate.embeddings.embeddings import Embeddings
|
from frigate.embeddings.embeddings import Embeddings
|
||||||
from frigate.models import Event, Timeline
|
from frigate.models import Event, Timeline
|
||||||
|
|
||||||
@ -25,7 +24,7 @@ class EventCleanupType(str, Enum):
|
|||||||
|
|
||||||
class EventCleanup(threading.Thread):
|
class EventCleanup(threading.Thread):
|
||||||
def __init__(
|
def __init__(
|
||||||
self, config: FrigateConfig, stop_event: MpEvent, db: SqliteQueueDatabase
|
self, config: FrigateConfig, stop_event: MpEvent, db: SqliteVecQueueDatabase
|
||||||
):
|
):
|
||||||
super().__init__(name="event_cleanup")
|
super().__init__(name="event_cleanup")
|
||||||
self.config = config
|
self.config = config
|
||||||
@ -234,8 +233,8 @@ class EventCleanup(threading.Thread):
|
|||||||
Event.delete().where(Event.id << chunk).execute()
|
Event.delete().where(Event.id << chunk).execute()
|
||||||
|
|
||||||
if self.config.semantic_search.enabled:
|
if self.config.semantic_search.enabled:
|
||||||
self.embeddings.delete_description(chunk)
|
self.db.delete_embeddings_description(chunk)
|
||||||
self.embeddings.delete_thumbnail(chunk)
|
self.db.delete_embeddings_thumbnail(chunk)
|
||||||
logger.debug(f"Deleted {len(events_to_delete)} embeddings")
|
logger.debug(f"Deleted {len(events_to_delete)} embeddings")
|
||||||
|
|
||||||
logger.info("Exiting event cleanup...")
|
logger.info("Exiting event cleanup...")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user