fix browser session bug (#3161)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user