工作流跟踪:原理、实践与定制
1. 工作流跟踪概述
工作流跟踪是一种内置机制,能自动监测工作流。通过向工作流运行时添加跟踪服务,就能跟踪和记录每个工作流及其内部活动的状态和事件数据。工作流跟踪在设计时和运行时都有重要作用,设计时能通过工作流设计器直观展示工作流步骤和关系,运行时能解决工作流在运行时像“黑盒”一样难以监控的问题。
2. 跟踪服务
在WF中,向工作流运行时添加可插拔的跟踪服务即可启用工作流跟踪。WF包含标准的 SqlTrackingService
,可将跟踪数据保存到SQL Server数据库,也可开发自定义跟踪服务将数据发送到其他目的地,如控制台、文件、Windows事件日志或自定义应用数据库。而且,可同时添加多个跟踪服务。
3. 跟踪事件类型
添加跟踪服务后,默认会自动将跟踪数据传递给服务。跟踪数据分为三种事件类型:
| 事件类型 | 描述 |
| — | — |
| 工作流事件 | 对应工作流状态的变化,如创建、启动、完成等,具体值在 TrackingWorkflowEvent
枚举中定义。 |
| 活动事件 | 对应单个活动执行状态的变化,状态值在 ActivityExecutionStatus
枚举中定义。 |
| 用户事件 | 可在工作流生命周期的任意点生成,可通过调用 TrackData
方法或在跟踪配置文件中添加 UserTrackPoint
来创建。 |