feat: 更新服务管理脚本优化设计文档
添加 10 项优化修复的设计说明:中文编码修复、动态可执行文件查找、 依赖等待逻辑修复、restart 支持 all、clean 增强、PID 严格验证、 进度条稳定、mini-program 补充配置。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
---
|
---
|
||||||
author: opencode
|
author: Peanut
|
||||||
created_at: 2026-04-26
|
created_at: 2026-04-26
|
||||||
purpose: 设计情绪博物馆项目的跨平台服务管理脚本,支持后端、前端、管理后台、小程序 H5 四个服务的启动、停止、重启、状态检查、日志查看等功能
|
updated_at: 2026-04-26
|
||||||
|
purpose: 设计并优化情绪博物馆跨平台服务管理脚本,修复硬编码路径、中文乱码、依赖等待逻辑等问题
|
||||||
---
|
---
|
||||||
|
|
||||||
# 情绪博物馆 - 跨平台服务管理脚本设计
|
# 情绪博物馆 - 跨平台服务管理脚本设计
|
||||||
@@ -243,6 +244,55 @@ python manage.py setup web # 安装前端依赖
|
|||||||
- 蓝色 `[SECTION]` - 分隔标题
|
- 蓝色 `[SECTION]` - 分隔标题
|
||||||
- 青色 `[DEBUG]` - 调试信息
|
- 青色 `[DEBUG]` - 调试信息
|
||||||
|
|
||||||
|
### 10. 优化修复(2026-04-26)
|
||||||
|
|
||||||
|
**10.1 中文编码修复**
|
||||||
|
|
||||||
|
在 `manage.py` 入口添加 UTF-8 编码配置,修复 Windows 控制台中文乱码:
|
||||||
|
|
||||||
|
```python
|
||||||
|
import sys, io
|
||||||
|
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
|
||||||
|
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
|
||||||
|
```
|
||||||
|
|
||||||
|
**10.2 动态可执行文件查找**
|
||||||
|
|
||||||
|
移除所有硬编码路径,新增 `_find_executable()` 方法动态查找 Node/Maven/npm 路径:
|
||||||
|
|
||||||
|
- **Node**: `shutil.which('node.exe')` → `F:\Program Files\nodejs` → `C:\Program Files\nodejs` → `%APPDATA%\npm`
|
||||||
|
- **npm**: `shutil.which('npm.cmd')` → 同 Node 路径
|
||||||
|
- **Maven**: `shutil.which('mvn.cmd')` → `shutil.which('mvn.bat')` → 常见 Maven 安装路径
|
||||||
|
|
||||||
|
**10.3 依赖等待逻辑修复**
|
||||||
|
|
||||||
|
`_start_all` 中不再等待"已加入启动队列但还未就绪"的服务,改为:
|
||||||
|
1. 先启动依赖服务(如 backend)
|
||||||
|
2. 等待其健康检查通过
|
||||||
|
3. 再启动依赖它的服务(如 web、web-admin)
|
||||||
|
|
||||||
|
**10.4 restart 支持 all 参数**
|
||||||
|
|
||||||
|
将 `restart_parser` 的 `service` 参数改为 `nargs="?"`,允许不传值。代码中处理 `all` 时触发全量重启。
|
||||||
|
|
||||||
|
**10.5 clean 增强**
|
||||||
|
|
||||||
|
清理范围扩展:
|
||||||
|
- **Node 服务**: `node_modules`、`dist`、`.vite` 目录
|
||||||
|
- **Java 服务**: `target` 目录(优先使用 `mvn clean`,fallback 为直接删除)
|
||||||
|
|
||||||
|
**10.6 PID 严格验证**
|
||||||
|
|
||||||
|
不仅检查 PID 存在,还检查进程的 `cwd`(工作目录)是否匹配服务目录,防止误判复用 PID 的其他进程。
|
||||||
|
|
||||||
|
**10.7 进度条显示稳定**
|
||||||
|
|
||||||
|
进度更新增加节流:仅在百分比变化 >= 10% 时刷新终端输出,避免频繁抖动。
|
||||||
|
|
||||||
|
**10.8 mini-program 补充 log_file 配置**
|
||||||
|
|
||||||
|
在 `manage.conf.yaml` 中为 `mini-program` 服务添加 `log_file` 字段。
|
||||||
|
|
||||||
## 配置 Schema 校验
|
## 配置 Schema 校验
|
||||||
|
|
||||||
配置文件加载后进行严格校验:
|
配置文件加载后进行严格校验:
|
||||||
|
|||||||
Reference in New Issue
Block a user