mirror of
https://github.com/home-assistant/core.git
synced 2025-08-08 23:25:11 +02:00
preload
This commit is contained in:
@@ -164,7 +164,13 @@ class EventTypeManager:
|
|||||||
"""Initialize the event manager."""
|
"""Initialize the event manager."""
|
||||||
self._id_map: dict[str, int] = LRU(EVENT_DATA_ID_CACHE_SIZE)
|
self._id_map: dict[str, int] = LRU(EVENT_DATA_ID_CACHE_SIZE)
|
||||||
self._pending: dict[str, EventTypes] = {}
|
self._pending: dict[str, EventTypes] = {}
|
||||||
self.active = False
|
|
||||||
|
def load(self, events: list[Event], session: Session) -> None:
|
||||||
|
"""Load the event types into memory."""
|
||||||
|
self.get_many(
|
||||||
|
(event.event_type for event in events if event.event_type is not None),
|
||||||
|
session,
|
||||||
|
)
|
||||||
|
|
||||||
def get(self, event_type: str, session: Session) -> int | None:
|
def get(self, event_type: str, session: Session) -> int | None:
|
||||||
"""Resolve events to event data."""
|
"""Resolve events to event data."""
|
||||||
@@ -790,8 +796,10 @@ class Recorder(threading.Thread):
|
|||||||
else:
|
else:
|
||||||
non_state_change_events.append(event_)
|
non_state_change_events.append(event_)
|
||||||
|
|
||||||
|
assert self.event_session is not None
|
||||||
self._pre_process_state_change_events(state_change_events)
|
self._pre_process_state_change_events(state_change_events)
|
||||||
self._pre_process_non_state_change_events(non_state_change_events)
|
self._pre_process_non_state_change_events(non_state_change_events)
|
||||||
|
self.event_type_manager.load(non_state_change_events, self.event_session)
|
||||||
|
|
||||||
def _pre_process_state_change_events(self, events: list[Event]) -> None:
|
def _pre_process_state_change_events(self, events: list[Event]) -> None:
|
||||||
"""Load startup state attributes from the database.
|
"""Load startup state attributes from the database.
|
||||||
|
Reference in New Issue
Block a user