Windows Workflow Foundation中基于时间的触发器

时间:2014-02-27 08:04:18

标签: workflow-foundation-4 workflow-foundation

我正在考虑使用Windows WF来实现一个系统,其中包括需要支持具有转换或活动的工作流,这些工作流需要安排在将来某个日期/时间执行,或者经过一段时间后。

我已经在这些方面找到了一个问题:

Windows Workflow Foundation - schedule activities to run at certain times

建议使用延迟任务并计算延迟的持续时间,以便在所需时间继续。不过,我还有一些其他问题,但没有足够的声誉来添加评论,因此我发布了第二个问题:

如何实现它以便它可以从崩溃中恢复?例如,假设任务当前处于延迟任务中,并且托管工作流引擎的进程崩溃。当它重新启动时,它是否会在延迟任务中继续等待,并在所需的时间触发?你必须做一些特别的事情来实现这个目标吗?

另一个问题是,再次让我们说工作流实例已经在延迟任务的中途。此时,您突然需要更改工作流进度到下一个活动/任务的时间/日期。是否可以以编程方式更新播放延迟任务的持续时间以实现此目的?

1 个答案:

答案 0 :(得分:0)

  1. 如果在SQL Store中存储已启动的实例,则可以在每次强制保存时添加Persist活动。崩溃活动将在上次持续后继续。
  2. 您可以使用While循环替换单个大延迟。在您检查是否需要延迟的情况下,您可以在体内以短间隔放置延迟活动。您可以在短暂延迟后添加持久性,并且实例不会在崩溃后再次等待全长时间(这取决于While条件,您需要存储实例的某个状态。例如在变量中)。