Event 任务
Event 任务是 Taskflow 的核心系统任务之一,专门用于实现工作流与外部消息系统的集成。它提供了一个统一的接口,支持多种主流消息中间件,使工作流能够方便地发布事件到不同的消息系统。
核心功能
多协议支持
- AMQP (RabbitMQ等)
- Kafka (Apache Kafka/Confluent)
- AWS SQS
- Azure Service Bus
- NATS
- Google Cloud Pub/Sub
- IBM MQ
消息路由
- 灵活的接收器配置
- 动态主题/队列选择
- 消息分发策略
数据处理
- 自动元数据注入
- 消息格式转换
- 负载定制化
前置要求
任务参数
参数 | 描述 | 必填/可选 |
---|---|---|
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}"
}
}
}
最佳实践
消息设计
- 使用明确的消息模式
- 包含必要的上下文信息
- 合理使用消息头部
错误处理
- 实现消息重试机制
- 设置死信队列
- 监控消息发送状态
性能优化
- 批量消息处理
- 合适的消息大小
- 适当的并发控制
使用场景
系统集成
- 跨系统通信
- 事件驱动架构
- 异步处理流程
数据流转
- 数据管道构建
- 消息转发服务
- 日志收集分发
业务流程
- 状态变更通知
- 任务委派分发
- 审批流程触发
UI 配置指南
基础配置
- 选择事件类型
- 配置接收器
- 设置消息参数
高级选项
- 消息模式定义
- 重试策略设置
- 监控告警配置
监控与维护
性能指标
- 消息吞吐量
- 延迟统计
- 错误率监控
运维管理
- 队列深度监控
- 消息积压处理
- 系统健康检查
故障排除
常见问题
- 连接异常处理
- 消息发送失败
- 配置错误修正
调试方法
- 日志分析
- 消息追踪
- 系统诊断
在 UI 中添加 Event 任务
添加 Event 任务的步骤:
- 在工作流中,选择 (+) 图标并添加 Event 任务。
- 在 Sink 中,选择所需的集成并附加主题/队列名称。如果不这样做,可能会导致执行错误,因为负载将没有有效的目标。
- (可选)添加任何其他输入参数。