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 state not found in persistent sessions manager",
|
||||||
browser_session_id=browser_session_id,
|
browser_session_id=browser_session_id,
|
||||||
)
|
)
|
||||||
raise MissingBrowserState(task_id=task.task_id)
|
|
||||||
else:
|
else:
|
||||||
if task.organization_id:
|
if task.organization_id:
|
||||||
LOG.info("User to occupy browser session here", browser_session_id=browser_session_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,
|
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
|
self.pages[task.task_id] = browser_state
|
||||||
if task.workflow_run_id:
|
if task.workflow_run_id:
|
||||||
self.pages[task.workflow_run_id] = browser_state
|
self.pages[task.workflow_run_id] = browser_state
|
||||||
@@ -160,7 +165,6 @@ class BrowserManager:
|
|||||||
LOG.warning(
|
LOG.warning(
|
||||||
"Browser state not found in persistent sessions manager", browser_session_id=browser_session_id
|
"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:
|
else:
|
||||||
LOG.info("Used to occupy browser session here", browser_session_id=browser_session_id)
|
LOG.info("Used to occupy browser session here", browser_session_id=browser_session_id)
|
||||||
page = await browser_state.get_working_page()
|
page = await browser_state.get_working_page()
|
||||||
@@ -183,6 +187,12 @@ class BrowserManager:
|
|||||||
extra_http_headers=workflow_run.extra_http_headers,
|
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
|
self.pages[workflow_run_id] = browser_state
|
||||||
if parent_workflow_run_id:
|
if parent_workflow_run_id:
|
||||||
self.pages[parent_workflow_run_id] = browser_state
|
self.pages[parent_workflow_run_id] = browser_state
|
||||||
|
|||||||
@@ -223,6 +223,10 @@ class PersistentSessionsManager:
|
|||||||
browser_session = self._browser_sessions.get(session_id)
|
browser_session = self._browser_sessions.get(session_id)
|
||||||
return browser_session.browser_state if browser_session else None
|
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:
|
async def get_session(self, session_id: str, organization_id: str) -> PersistentBrowserSession | None:
|
||||||
"""Get a specific browser session by session ID."""
|
"""Get a specific browser session by session ID."""
|
||||||
return await self.database.get_persistent_browser_session(session_id, organization_id)
|
return await self.database.get_persistent_browser_session(session_id, organization_id)
|
||||||
|
|||||||
Reference in New Issue
Block a user