optimize browser session history query (#4193)

This commit is contained in:
LawyZheng
2025-12-04 15:07:55 +08:00
committed by GitHub
parent 9888bd27d4
commit 606580828f
3 changed files with 44 additions and 5 deletions

View File

@@ -4159,10 +4159,7 @@ class AgentDB:
async with self.Session() as session:
open_first = case(
(
and_(
PersistentBrowserSessionModel.started_at.is_not(None),
PersistentBrowserSessionModel.completed_at.is_(None),
),
PersistentBrowserSessionModel.status == "running",
0, # open
),
else_=1, # not open
@@ -4173,7 +4170,7 @@ class AgentDB:
.filter_by(organization_id=organization_id)
.filter_by(deleted_at=None)
.filter(
PersistentBrowserSessionModel.created_at > datetime.utcnow() - timedelta(hours=lookback_hours)
PersistentBrowserSessionModel.created_at > (datetime.utcnow() - timedelta(hours=lookback_hours))
)
.order_by(
open_first.asc(), # open sessions first

View File

@@ -801,6 +801,12 @@ class PersistentBrowserSessionModel(Base):
"started_at",
"completed_at",
),
Index(
"idx_persistent_browser_sessions_org_status_created",
"organization_id",
"status",
desc("created_at"),
),
)
persistent_browser_session_id = Column(String, primary_key=True, default=generate_persistent_browser_session_id)