Skip to content

Event 任务

Event 任务是 Taskflow 的核心系统任务之一,专门用于实现工作流与外部消息系统的集成。它提供了一个统一的接口,支持多种主流消息中间件,使工作流能够方便地发布事件到不同的消息系统。

核心功能

  1. 多协议支持

    • AMQP (RabbitMQ等)
    • Kafka (Apache Kafka/Confluent)
    • AWS SQS
    • Azure Service Bus
    • NATS
    • Google Cloud Pub/Sub
    • IBM MQ
  2. 消息路由

    • 灵活的接收器配置
    • 动态主题/队列选择
    • 消息分发策略
  3. 数据处理

    • 自动元数据注入
    • 消息格式转换
    • 负载定制化

前置要求

  1. 消息中间件集成

    • 完成目标消息系统的集成配置
    • 确保消息系统的连接性和权限
    • 配置适当的消息处理器
  2. 事件处理配置

    • 创建并配置事件处理器
    • 设置事件路由规则
    • 定义消息处理逻辑

任务参数

参数描述必填/可选
sink事件接收器配置串,格式:<type>:<config>:<destination> 类型支持: - amqp:AMQP协议 - kafka:Kafka消息 - sqs:AWS SQS - azure:Azure Service Bus - nats:NATS消息 - gcppubsub:GCP Pub/Sub - ibm_mq:IBM MQ 配置项:集成配置名称 目标:队列或主题名称必填
inputParameters事件负载参数,支持动态参数和静态值可选

系统注入参数

Event 任务自动向消息负载注入以下系统参数:

{
  "workflowInstanceId": "当前工作流实例ID",
  "workflowType": "工作流定义名称",
  "workflowVersion": "工作流版本号",
  "correlationId": "关联标识符"
}

配置示例

基础配置

{
  "name": "publish_event",
  "taskReferenceName": "publish_event_ref",
  "type": "EVENT",
  "sink": "kafka:kafka-prod:notifications",
  "inputParameters": {
    "messageType": "USER_CREATED",
    "userId": "${workflow.input.userId}",
    "timestamp": "${system.currentTimeMillis}"
  }
}

Kafka 集成示例

{
  "name": "kafka_event",
  "taskReferenceName": "kafka_event_ref",
  "type": "EVENT",
  "sink": "kafka:kafka-cluster:user-events",
  "inputParameters": {
    "_schema": "user-events-value",
    "eventType": "PROFILE_UPDATED",
    "data": {
      "userId": "${workflow.input.userId}",
      "changes": "${workflow.input.profileChanges}"
    }
  }
}

最佳实践

  1. 消息设计

    • 使用明确的消息模式
    • 包含必要的上下文信息
    • 合理使用消息头部
  2. 错误处理

    • 实现消息重试机制
    • 设置死信队列
    • 监控消息发送状态
  3. 性能优化

    • 批量消息处理
    • 合适的消息大小
    • 适当的并发控制

使用场景

  1. 系统集成

    • 跨系统通信
    • 事件驱动架构
    • 异步处理流程
  2. 数据流转

    • 数据管道构建
    • 消息转发服务
    • 日志收集分发
  3. 业务流程

    • 状态变更通知
    • 任务委派分发
    • 审批流程触发

UI 配置指南

  1. 基础配置

    • 选择事件类型
    • 配置接收器
    • 设置消息参数
  2. 高级选项

    • 消息模式定义
    • 重试策略设置
    • 监控告警配置

监控与维护

  1. 性能指标

    • 消息吞吐量
    • 延迟统计
    • 错误率监控
  2. 运维管理

    • 队列深度监控
    • 消息积压处理
    • 系统健康检查

故障排除

  1. 常见问题

    • 连接异常处理
    • 消息发送失败
    • 配置错误修正
  2. 调试方法

    • 日志分析
    • 消息追踪
    • 系统诊断

在 UI 中添加 Event 任务

添加 Event 任务的步骤:

  1. 在工作流中,选择 (+) 图标并添加 Event 任务。
  2. 在 Sink 中,选择所需的集成并附加主题/队列名称。如果不这样做,可能会导致执行错误,因为负载将没有有效的目标。
  3. (可选)添加任何其他输入参数。

飞流云