fix: avoid blocking browser init
This commit is contained in:
@@ -11,7 +11,7 @@ from crypto_utils import encrypt_password as encrypt_account_password
|
||||
from flask import Blueprint, jsonify, request
|
||||
from flask_login import current_user, login_required
|
||||
from services.accounts_service import load_user_accounts
|
||||
from services.browser_manager import init_browser_manager
|
||||
from services.browser_manager import init_browser_manager_async
|
||||
from services.browse_types import BROWSE_TYPE_SHOULD_READ, normalize_browse_type, validate_browse_type
|
||||
from services.client_log import log_to_client
|
||||
from services.models import Account
|
||||
@@ -230,9 +230,9 @@ def start_account(account_id):
|
||||
if not browse_type:
|
||||
return jsonify({"error": "浏览类型无效"}), 400
|
||||
enable_screenshot = data.get("enable_screenshot", True)
|
||||
|
||||
if not init_browser_manager():
|
||||
return jsonify({"error": "浏览器初始化失败"}), 500
|
||||
if enable_screenshot:
|
||||
# 异步初始化浏览器环境,避免首次下载/安装 Chromium 阻塞请求导致“网页无响应”
|
||||
init_browser_manager_async()
|
||||
|
||||
ok, message = submit_account_task(
|
||||
user_id=user_id,
|
||||
@@ -308,6 +308,9 @@ def manual_screenshot(account_id):
|
||||
|
||||
account.last_browse_type = browse_type
|
||||
|
||||
# 异步初始化浏览器环境,避免首次下载/安装 Chromium 阻塞请求
|
||||
init_browser_manager_async()
|
||||
|
||||
threading.Thread(
|
||||
target=take_screenshot_for_account,
|
||||
args=(user_id, account_id, browse_type, "manual_screenshot"),
|
||||
@@ -333,6 +336,10 @@ def batch_start_accounts():
|
||||
if not account_ids:
|
||||
return jsonify({"error": "请选择要启动的账号"}), 400
|
||||
|
||||
if enable_screenshot:
|
||||
# 异步初始化浏览器环境,避免首次下载/安装 Chromium 阻塞请求
|
||||
init_browser_manager_async()
|
||||
|
||||
started = []
|
||||
failed = []
|
||||
|
||||
@@ -407,4 +414,3 @@ def batch_stop_accounts():
|
||||
_emit("account_update", account.to_dict(), room=f"user_{user_id}")
|
||||
|
||||
return jsonify({"success": True, "stopped_count": len(stopped), "stopped": stopped})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user