fix browser session bug (#3161)

This commit is contained in:
LawyZheng
2025-08-12 00:30:38 +08:00
committed by GitHub
parent ce60f2fbe1
commit d46d79e9e3
2 changed files with 16 additions and 2 deletions

View File

@@ -92,7 +92,6 @@ class BrowserManager:
"Browser state not found in persistent sessions manager",
browser_session_id=browser_session_id,
)
raise MissingBrowserState(task_id=task.task_id)
else:
if task.organization_id:
LOG.info("User to occupy browser session here", browser_session_id=browser_session_id)
@@ -114,6 +113,12 @@ class BrowserManager:
extra_http_headers=task.extra_http_headers,
)
if browser_session_id:
await app.PERSISTENT_SESSIONS_MANAGER.set_browser_state(
browser_session_id,
browser_state,
)
self.pages[task.task_id] = browser_state
if task.workflow_run_id:
self.pages[task.workflow_run_id] = browser_state
@@ -160,7 +165,6 @@ class BrowserManager:
LOG.warning(
"Browser state not found in persistent sessions manager", browser_session_id=browser_session_id
)
raise MissingBrowserState(workflow_run_id=workflow_run.workflow_run_id)
else:
LOG.info("Used to occupy browser session here", browser_session_id=browser_session_id)
page = await browser_state.get_working_page()
@@ -183,6 +187,12 @@ class BrowserManager:
extra_http_headers=workflow_run.extra_http_headers,
)
if browser_session_id:
await app.PERSISTENT_SESSIONS_MANAGER.set_browser_state(
browser_session_id,
browser_state,
)
self.pages[workflow_run_id] = browser_state
if parent_workflow_run_id:
self.pages[parent_workflow_run_id] = browser_state

View File

@@ -223,6 +223,10 @@ class PersistentSessionsManager:
browser_session = self._browser_sessions.get(session_id)
return browser_session.browser_state if browser_session else None
async def set_browser_state(self, session_id: str, browser_state: BrowserState) -> None:
browser_session = BrowserSession(browser_state=browser_state)
self._browser_sessions[session_id] = browser_session
async def get_session(self, session_id: str, organization_id: str) -> PersistentBrowserSession | None:
"""Get a specific browser session by session ID."""
return await self.database.get_persistent_browser_session(session_id, organization_id)