Scale display player by switching from SSE to polling

This commit is contained in:
2026-01-24 19:59:00 +01:00
parent a9a1a6cdbe
commit 4df004c18a
2 changed files with 24 additions and 48 deletions

View File

@@ -29,11 +29,15 @@ def _enforce_and_touch_display_session(display: Display, sid: str | None):
return True, None
cutoff = datetime.utcnow() - timedelta(seconds=SESSION_TTL_SECONDS)
DisplaySession.query.filter(
DisplaySession.display_id == display.id,
DisplaySession.last_seen_at < cutoff,
).delete(synchronize_session=False)
db.session.commit()
# Cleanup old sessions. Avoid committing if nothing was deleted (saves write locks on SQLite).
deleted = (
DisplaySession.query.filter(
DisplaySession.display_id == display.id,
DisplaySession.last_seen_at < cutoff,
).delete(synchronize_session=False)
)
if deleted:
db.session.commit()
existing = DisplaySession.query.filter_by(display_id=display.id, sid=sid).first()
if existing: