## 主要修复 - 修复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>
32 lines
764 B
Python
32 lines
764 B
Python
from typing import Optional
|
|
from datetime import datetime
|
|
from enum import Enum
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class TaskStatus(str, Enum):
|
|
"""任务状态枚举"""
|
|
PENDING = "pending"
|
|
RUNNING = "running"
|
|
COMPLETED = "completed"
|
|
FAILED = "failed"
|
|
|
|
|
|
class TaskType(str, Enum):
|
|
"""任务类型枚举"""
|
|
START_SOFTWARE = "start_software"
|
|
STOP_SOFTWARE = "stop_software"
|
|
RESTART_SOFTWARE = "restart_software"
|
|
|
|
|
|
class Task(BaseModel):
|
|
"""任务模型"""
|
|
id: str
|
|
task_type: TaskType
|
|
software_id: str
|
|
status: TaskStatus = TaskStatus.PENDING
|
|
created_at: datetime
|
|
started_at: Optional[datetime] = None
|
|
completed_at: Optional[datetime] = None
|
|
error_message: Optional[str] = None
|
|
progress: int = 0 |