6.6冲刺
昨天的成就: 顺利通过了Sprint 3功能验收(准确率88%,满意度92%),修复了导出路径和分页性能问题,完成了测试环境部署,耗时8小时
遇到的困难: 验收演示紧张情绪,数据库迁移表冲突,PM2环境变量未加载,Nginx反向代理端口配置错误
今天的任务: 召开Sprint回顾会议,整理项目文档归档,团队庆祝与休整
📝 工作代码展示
-
PM2 进程管理配置 (ecosystem.config.js)
javascript
module.exports = {
apps: [{
name: 'ai-service',
script: 'src/server.js',
instances: 2, // 集群模式,利用多核CPU
exec_mode: 'cluster', // 集群模式
autorestart: true, // 自动重启
watch: false, // 生产环境关闭文件监听// 开发环境
env: {
NODE_ENV: 'development',
PORT: 3002
},// 生产环境
env_production: {
NODE_ENV: 'production',
PORT: 3002,
DASHSCOPE_API_KEY: process.env.DASHSCOPE_API_KEY // 从系统环境变量继承
},// 日志配置
error_file: './logs/err.log',
out_file: './logs/out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss',// 资源限制
max_memory_restart: '500M', // 内存超过500MB自动重启防止泄漏
min_uptime: '10s', // 最小运行时间
max_restarts: 10 // 最大重启次数
}]
}; -
Nginx 反向代理配置 (/etc/nginx/conf.d/ai-service.conf)
nginx
server {
listen 80;
server_name test-server.example.com;前端静态资源 (React SPA)
location / {
root /var/www/construction-mgmt;
index index.html;
try_files $uri $uri/ /index.html; # 支持 React Router 历史模式缓存策略
location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
expires 7d;
add_header Cache-Control "public, immutable";
}
}AI 服务 API 代理
location /api/ai/ {
proxy_pass http://localhost:3002/api/;关键 Header 转发
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;超时设置(AI识别较慢,需延长)
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 120s;大文件上传支持
client_max_body_size 50M;
}主系统其他 API
location /api/ {
proxy_pass http://localhost:3001/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}日志记录
access_log /var/log/nginx/ai-service-access.log;
error_log /var/log/nginx/ai-service-error.log warn;
} -
自动化部署脚本 (deploy.sh)
bash
!/bin/bash
set -e
echo " 开始部署 AI Service 到测试环境..."
1. 本地构建
echo "[1/6] 本地构建代码..."
npm run build
2. 打包并上传
echo "[2/6] 打包并上传到服务器..."
tar -czf dist.tar.gz dist/ src/ package.json package-lock.json ecosystem.config.js .env.example
scp dist.tar.gz user@test-server:/tmp/ai-service/
ssh user@test-server "cd /tmp/ai-service && tar -xzf dist.tar.gz"
3. 服务器端安装依赖
echo "[3/6] 安装生产依赖..."
ssh user@test-server "cd /opt/ai-service && npm install --production"
4. 数据库迁移
echo "[4/6] 执行数据库迁移..."
ssh user@test-server "cd /opt/ai-service && npx sequelize db:migrate"
5. 重启服务
echo "[5/6] 重启 PM2 服务..."
ssh user@test-server "pm2 reload ecosystem.config.js --env production"
6. 健康检查
echo "[6/6] 验证服务状态..."
HTTP_CODE=$(ssh user@test-server "curl -s -o /dev/null -w '%{http_code}' http://localhost:3002/health")
if [ "$HTTP_CODE" -eq 200 ]; then
echo "✅ 部署成功!服务运行正常。"
echo "访问地址: http://test-server.example.com"
else
echo "❌ 部署失败!HTTP 状态码: $HTTP_CODE"
exit 1
fi
清理临时文件
rm dist.tar.gz
4. Sprint 回顾会议记录模板 (docs/Sprint3-Retrospective.md)
markdown
Sprint 3 回顾会议记录
日期: 2026-06-06
参与人: 韩磊(开发)、张经理(产品)、李工(测试)、王总(项目经理)
时长: 1小时
1. 数据回顾
- 目标达成率: 100% (15/15 任务完成)
- 识别准确率: 88% (目标 ≥85%) ✅
- 用户满意度: 92% (目标 ≥85%) ✅
- Bug 总数: 5个 (严重 0, 一般 2, 轻微 3)
2. Keep (做得好的地方)
- 测试驱动开发 (TDD): 提前发现了Windows路径和JSON序列化等边界问题。
- 提示词迭代优化: 通过3轮A/B测试,准确率从72%提升到88%。
- 完善的文档体系: 降低了用户学习成本,培训反馈极佳。
- 并发容错设计:
Promise.allSettled确保了批量识别的高可用性。
3. Problem (需要改进的地方)
- 第三方服务依赖风险: 阿里云API偶尔波动,演示时曾出现503错误。
- 性能优化滞后: 历史记录页面在数据量大时加载慢,后期才优化。
- 跨平台测试不足: Windows路径问题在开发后期才发现。
4. Try (下次尝试的新方法)
- 建立 Mock 服务器: 模拟第三方API响应,确保演示和开发不受外部影响。
- 引入性能基准测试: 在开发初期就设定性能指标(如加载时间<1s)。
- 自动化部署流水线: 编写标准部署脚本,减少人为配置错误(如Nginx端口)。

浙公网安备 33010602011771号