我有一组自定义活动,用于复杂的工作流程。
我想让它们(自定义活动)持久化,而无需让工作流处于空闲状态。它应该是一种故障转移系统,因此每当工作流执行期间出现问题时,它可能是:
- 由用户暂停(随时)并稍后从暂停的书签/点恢复(例如,用户注意到外部系统已关闭,他想暂时暂停工作流程)。
- 如果出现未处理的异常,我们可以从最后一个书签/时间点重新开始执行
- WorkflowApplication 主机的停止可以随时发生,我们可以从最后一个书签/时间点重新开始执行
我已经用工作流持久性工作了几天,但我不确定我是否可以用它来实现我的目标。为什么?
- 我可以在每个自定义活动中使用阻止书签,但是阻止工作流并重新启动它只是为了让它持久化看起来并不乐观。
- 我可以使用不阻止书签,但我无法在数据库中看到它们并从中恢复。
你能告诉我吗,工作流书签是这里的路吗?
我在不阻止书签方面看到了一些亮点,但我无法保留它们并稍后恢复。您能否给我一些提示,如何为以后的简历保留非阻塞书签?
编辑:
在 wf3 中有一个属性PersistOnClose
足以满足我的要求。在 wf4 中,它被替换为Persist
活动,这也可能很有用,但是我不想在我已经很复杂的工作流程中进行额外的活动。
理想情况下,能够从 执行会很棒context.RequestPersist(callback)
,NativeActivityContext
但是这个方法是内部的(并且它里面的所有东西在原始程序集之外都是不可见的。