Files
ProxyPool/script/start.bat
祀梦 38bd66128b 重构: 迁移后端代码到 app 目录,前端移动到 WebUI,添加完整测试套件
主要变更:
- 后端代码从根目录迁移到 app/ 目录
- 前端代码从 frontend/ 重命名为 WebUI/
- 更新所有导入路径以适配新结构
- 提取公共 API 响应函数到 app/api/common.py
- 精简验证器服务代码
- 更新启动脚本和文档

测试:
- 新增完整测试套件 (tests/)
- 单元测试: 模型、仓库层
- 集成测试: 覆盖所有 22+ API 端点
- E2E 测试: 4个完整工作流场景
- 添加 pytest 配置和测试运行脚本
2026-04-04 13:32:36 +08:00

89 lines
2.2 KiB
Batchfile

@echo off
chcp 65001 >nul
echo === ProxyPool Startup ===
echo.
set "ROOT_PATH=%~dp0.."
set "BACKEND_PORT=9949"
set "FRONTEND_PORT=9948"
REM 1. Clean processes on ports
echo [1/4] Cleaning old processes...
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":%BACKEND_PORT%" ^| findstr "LISTENING"') do (
taskkill /F /PID %%a >nul 2>&1
echo Stopped backend (PID: %%a)
)
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":%FRONTEND_PORT%" ^| findstr "LISTENING"') do (
taskkill /F /PID %%a >nul 2>&1
echo Stopped frontend (PID: %%a)
)
echo Cleanup complete!
echo.
REM 2. Start Backend
echo [2/4] Starting backend (FastAPI)...
if exist "%ROOT_PATH%\venv\Scripts\python.exe" (
set "PYTHON_PATH=%ROOT_PATH%\venv\Scripts\python.exe"
echo Using venv
) else (
set "PYTHON_PATH=python"
echo Using system Python
)
cd /d "%ROOT_PATH%"
set "PYTHONIOENCODING=utf-8"
REM Ensure logs directory exists (used by application logger)
mkdir "%ROOT_PATH%\logs" 2>nul
REM Start backend in background of current console
start /B "" "%PYTHON_PATH%" -u main.py
echo Backend started
echo.
REM 3. Wait for backend
echo [3/4] Waiting for backend...
set RETRY_COUNT=0
set BACKEND_READY=0
:WAIT_LOOP
if %RETRY_COUNT% geq 15 goto WAIT_DONE
REM Use ping instead of timeout for PowerShell compatibility
ping -n 3 127.0.0.1 >nul 2>&1
set /a RETRY_COUNT+=1
REM Try to connect to backend health endpoint
powershell -Command "try { $r = Invoke-RestMethod -Uri 'http://127.0.0.1:9949/health' -TimeoutSec 2 -ErrorAction Stop; exit 0 } catch { exit 1 }" >nul 2>&1
if %errorlevel% equ 0 (
set BACKEND_READY=1
goto WAIT_DONE
)
echo Waiting... (%RETRY_COUNT%/15)
goto WAIT_LOOP
:WAIT_DONE
if %BACKEND_READY% equ 0 (
echo.
echo Backend failed to start within 30 seconds!
echo Check the console output above for errors.
pause
exit /b 1
)
echo Backend is ready!
echo.
REM 4. Start Frontend
echo [4/4] Starting frontend (Vite)...
cd /d "%ROOT_PATH%\WebUI"
start /B "" cmd /c "npm run dev"
cd /d "%ROOT_PATH%"
echo Frontend started
echo.
echo === All services started ===
echo Backend: http://127.0.0.1:9949
echo Frontend: http://localhost:9948
echo.
echo Press any key to close this window (services will keep running).
pause >nul