优化浏览器池和并发配置

1. 浏览器池改为按需启动模式
   - 启动时不创建浏览器,有截图任务时才启动
   - 空闲5分钟后自动关闭浏览器释放资源

2. 修复截图并发数保存问题
   - 修复database.py中缺少保存max_screenshot_concurrent的代码

3. 去掉并发数上限限制
   - 管理员可自由设置并发数,不再限制1-20/1-5

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-10 20:31:49 +08:00
parent 7954aeaf59
commit 32a29e61e9
4 changed files with 43 additions and 36 deletions

8
app.py
View File

@@ -3444,15 +3444,15 @@ if __name__ == '__main__':
print("默认管理员: admin/admin")
print("=" * 60 + "\n")
# 同步初始化浏览器必须在socketio.run之前否则eventlet会导致asyncio冲突
# 初始化浏览器工作线程池(按需模式,启动时不创建浏览器
try:
system_cfg = database.get_system_config()
pool_size = system_cfg.get('max_screenshot_concurrent', 3) if system_cfg else 3
print(f"正在预热 {pool_size} 个浏览器实例(截图加速...")
print(f"初始化截图线程池({pool_size}个worker按需启动浏览器空闲5分钟后自动关闭...")
init_browser_worker_pool(pool_size=pool_size)
print("浏览器池初始化完成")
print("截图线程池初始化完成")
except Exception as e:
print(f"警告: 浏览器池初始化失败: {e}")
print(f"警告: 截图线程池初始化失败: {e}")
socketio.run(app, host=config.SERVER_HOST, port=config.SERVER_PORT, debug=config.DEBUG, allow_unsafe_werkzeug=True)