ййй
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from collections import defaultdict
|
||||
|
||||
from app.modules.agent_api.domain.events.client_event import ClientEventRecord
|
||||
|
||||
|
||||
class ReplayBuffer:
|
||||
def __init__(self, limit: int = 200) -> None:
|
||||
self._limit = limit
|
||||
self._items: dict[str, list[ClientEventRecord]] = defaultdict(list)
|
||||
|
||||
def append(self, request_id: str, event: ClientEventRecord) -> None:
|
||||
history = self._items[request_id]
|
||||
history.append(event)
|
||||
if len(history) > self._limit:
|
||||
del history[: len(history) - self._limit]
|
||||
|
||||
def list(self, request_id: str) -> list[ClientEventRecord]:
|
||||
return list(self._items.get(request_id, []))
|
||||
Reference in New Issue
Block a user