CadHubManage/app/main.py
root e6261532f7 feat: 添加软件停止功能并修复Creo进程检测问题
## 主要修复
- 修复Creo软件运行状态检测失败问题
- 添加完整的软件停止功能支持
- 改进多进程软件的进程管理逻辑

## 技术改进
- 更新软件配置支持多进程名称检测
- 优化进程停止逻辑,增加超时配置
- 新增 stop_software WebSocket消息类型
- 完善错误处理和日志记录

## 配置更新
- configs/software_config.yaml: 支持进程名称列表和停止超时
- 添加Revit 2017配置支持

## 文档更新
- README.md: 更新软件配置说明和API列表
- frontend-api-docs.md: 添加停止软件API文档
- CHECKPOINT.md: 记录修复进展和解决方案

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 17:24:49 +08:00

59 lines
1.4 KiB
Python

"""
FastAPI主入口文件
"""
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.api.v1 import websocket
from app.core.websocket_manager import websocket_manager
from app.core.software_manager import software_manager
from app.core.log_manager import log_manager
# 创建FastAPI实例
app = FastAPI(
title="CadHubManage API",
description="通过Web接口控制Windows服务器上软件的管理系统",
version="1.0.0"
)
# 初始化管理器之间的关联
software_manager.set_websocket_manager(websocket_manager)
software_manager.set_log_manager(log_manager)
# 启动和关闭事件
@app.on_event("startup")
async def startup_event():
"""应用启动时的初始化"""
await log_manager.start()
@app.on_event("shutdown")
async def shutdown_event():
"""应用关闭时的清理"""
await log_manager.stop()
# 配置CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 生产环境应该设置具体的域名
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# 注册API路由
app.include_router(websocket.router, prefix="/api/v1/ws", tags=["WebSocket"])
@app.get("/")
async def root():
"""根路径"""
return {
"message": "CadHubManage API服务正在运行",
"version": "1.0.0",
"docs": "/docs"
}
@app.get("/health")
async def health_check():
"""健康检查接口"""
return {"status": "healthy"}