工作流中的事务、补偿与规则应用
1. 批量工作参与
传统上,使用 TransactionScopeActivity 执行事务控制下的工作时,通常需要涉及如关系数据库这样的资源管理器。不过,也有一种方式能让工作参与到事务中,而无需资源管理器。
通过实现 IPendingWork 接口,本地服务(或宿主应用程序)可以执行受事务控制的工作。所执行的工作完全由你定义,这意味着你不受限于在关系数据库或其他资源管理器上执行的工作。
IPendingWork 接口定义了三个必须实现的成员,如下表所示:
| 成员 | 描述 |
| — | — |
| MustCommit | 返回一个布尔值,指示当前批次的工作是否应立即提交,还是可以等到下一个提交点 |
| Commit | 调用以提交一批工作 |
| Complete | 在事务结束时调用,通知你事务的成功或失败 |
工作流使用静态的 WorkflowEnvironment.BatchWork 属性将工作添加到批次中。该属性支持一个 Add 方法,用于添加表示某些工作的对象。当事务完成时,应提交该工作对象。具体工作内容及其表示方式完全由你定义,可以是简单的字符串,也可以是复杂的自定义对象。唯一的要求是本地服务要理解如何处理和提交该工作。
Add 方法还要求你指定将提交工作的对象。在后续示例中,这是实现 IPendingWork 的本地服务。通过 <
超级会员免费看
订阅专栏 解锁全文
1198

被折叠的 条评论
为什么被折叠?



