diff --git a/app/api/endpoints/workflow.py b/app/api/endpoints/workflow.py index bde10c6f..267acec3 100644 --- a/app/api/endpoints/workflow.py +++ b/app/api/endpoints/workflow.py @@ -99,7 +99,7 @@ def start_workflow(workflow_id: int, workflow = Workflow.get(db, workflow_id) if not workflow: return schemas.Response(success=False, message="工作流不存在") - Scheduler().remove_workflow_job(workflow) + Scheduler().update_workflow_job(workflow) workflow.update_state(db, workflow_id, "W") return schemas.Response(success=True) diff --git a/app/db/models/workflow.py b/app/db/models/workflow.py index ab157454..401e6101 100644 --- a/app/db/models/workflow.py +++ b/app/db/models/workflow.py @@ -19,7 +19,7 @@ class Workflow(Base): timer = Column(String) # 状态:W-等待 R-运行中 P-暂停 S-成功 F-失败 state = Column(String, nullable=False, index=True, default='W') - # 当前执行动作 + # 已执行动作(,分隔) current_action = Column(String) # 任务执行结果 result = Column(String) diff --git a/app/scheduler.py b/app/scheduler.py index d9512db6..5a11d7ad 100644 --- a/app/scheduler.py +++ b/app/scheduler.py @@ -494,6 +494,9 @@ class Scheduler(metaclass=Singleton): """ 更新工作流定时服务 """ + if not self._scheduler: + return + # 移除该工作流的全部服务 self.remove_workflow_job(workflow) # 添加工作流服务 diff --git a/app/schemas/workflow.py b/app/schemas/workflow.py index a90a7c49..014b956c 100644 --- a/app/schemas/workflow.py +++ b/app/schemas/workflow.py @@ -20,7 +20,7 @@ class Workflow(BaseModel): description: Optional[str] = Field(None, description="工作流描述") timer: Optional[str] = Field(None, description="定时器") state: Optional[str] = Field(None, description="状态") - current_action: Optional[str] = Field(None, description="当前执行动作") + current_action: Optional[str] = Field(None, description="已执行动作") result: Optional[str] = Field(None, description="任务执行结果") run_count: Optional[int] = Field(0, description="已执行次数") actions: Optional[list] = Field([], description="任务列表")