Skip to content

Terminate 任务

Terminate 任务是 Taskflow 中的一个控制流任务,用于主动终止工作流的执行。它提供了一种优雅的方式来处理工作流的提前结束,可以基于特定条件或业务规则来控制工作流的生命周期。

核心特性

  1. 终止控制

    • 立即终止执行
    • 状态标记设置
    • 输出数据保存
  2. 条件终止

    • 基于条件判断
    • 动态状态设置
    • 错误处理集成
  3. 清理机制

    • 资源释放
    • 状态回写
    • 事件通知

任务参数

参数描述必需/可选
status工作流终止状态。支持的值: - COMPLETED:正常完成 - FAILED:执行失败 - TERMINATED:手动终止必需
workflowOutput工作流终止时的输出数据。可以包含任何 JSON 格式的数据。可选
terminationReason终止原因说明。用于记录终止的具体原因。可选

配置示例

1. 基础终止

{
  "name": "terminate",
  "taskReferenceName": "terminate_task",
  "type": "TERMINATE",
  "inputParameters": {
    "status": "COMPLETED",
    "workflowOutput": {
      "result": "success",
      "message": "Process completed successfully"
    }
  }
}

2. 失败终止

{
  "name": "terminate_with_error",
  "taskReferenceName": "terminate_error",
  "type": "TERMINATE",
  "inputParameters": {
    "status": "FAILED",
    "workflowOutput": {
      "error": "Validation failed",
      "details": {
        "code": "VAL_001",
        "message": "Invalid input data"
      }
    },
    "terminationReason": "Data validation error occurred"
  }
}

3. 条件终止

{
  "name": "conditional_terminate",
  "taskReferenceName": "terminate_conditional",
  "type": "TERMINATE",
  "inputParameters": {
    "status": "${workflow.input.status}",
    "workflowOutput": {
      "processId": "${workflow.input.processId}",
      "status": "${workflow.input.status}",
      "timestamp": "${system.currentTimeMillis}"
    },
    "terminationReason": "${workflow.input.reason}"
  }
}

使用场景

1. 流程验证失败

{
  "name": "validate_and_terminate",
  "taskReferenceName": "validation_terminate",
  "type": "TERMINATE",
  "inputParameters": {
    "status": "FAILED",
    "workflowOutput": {
      "validationErrors": "${workflow.input.errors}",
      "timestamp": "${system.currentTimeMillis}"
    }
  }
}

2. 业务规则中断

{
  "name": "business_rule_terminate",
  "taskReferenceName": "rule_terminate",
  "type": "TERMINATE",
  "inputParameters": {
    "status": "TERMINATED",
    "workflowOutput": {
      "ruleId": "${workflow.input.ruleId}",
      "action": "process_terminated",
      "reason": "Business rule violation"
    }
  }
}

3. 成功完成处理

{
  "name": "success_terminate",
  "taskReferenceName": "success_terminate",
  "type": "TERMINATE",
  "inputParameters": {
    "status": "COMPLETED",
    "workflowOutput": {
      "processedItems": "${workflow.input.itemCount}",
      "successRate": "${workflow.input.successRate}",
      "completionTime": "${system.currentTimeMillis}"
    }
  }
}

最佳实践

  1. 状态管理

    • 明确设置终止状态
    • 提供详细的原因说明
    • 保存必要的上下文信息
  2. 数据处理

    • 清理临时资源
    • 保存重要数据
    • 触发必要的通知
  3. 错误处理

    • 记录详细日志
    • 实现补偿逻辑
    • 维护一致性

监控建议

  1. 状态跟踪

    • 记录终止事件
    • 统计终止原因
    • 分析终止模式
  2. 性能监控

    • 终止处理时间
    • 资源释放情况
    • 系统影响评估
  3. 告警设置

    • 异常终止告警
    • 频繁终止检测
    • 资源泄露监控

注意事项

  1. 执行顺序

    • Terminate 任务会立即结束工作流
    • 后续任务不会执行
    • 需要确保清理操作已完成
  2. 数据一致性

    • 保证数据状态一致
    • 处理并发情况
    • 维护事务完整性
  3. 资源管理

    • 释放所有资源
    • 关闭外部连接
    • 清理临时文件

调试指南

  1. 日志记录

    {
      "workflowOutput": {
     "debug": {
       "terminationPoint": "validation_step",
       "stackTrace": "${workflow.input.errorStack}",
       "context": "${workflow.input.debugContext}"
     }
      }
    }
  2. 状态追踪

    {
      "workflowOutput": {
     "audit": {
       "terminatedBy": "${workflow.input.userId}",
       "timestamp": "${system.currentTimeMillis}",
       "reason": "${workflow.input.terminationReason}"
     }
      }
    }

UI 配置指南

  1. 基本设置

    • 选择终止状态
    • 配置输出数据
    • 设置终止原因
  2. 高级选项

    • 条件配置
    • 数据映射
    • 通知设置
  3. 监控视图

    • 查看终止历史
    • 分析终止原因
    • 评估影响范围

飞流云