【问题标题】:Time based triggers in Windows Workflow FoundationWindows Workflow Foundation 中基于时间的触发器
【发布时间】:2014-02-27 16:09:59
【问题描述】:

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

我已经发现了一个类似的问题:

Windows Workflow Foundation - schedule activities to run at certain times

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

如何实现它以便它可以从崩溃中恢复?例如,假设任务当前处于延迟任务中,并且托管工作流引擎的进程崩溃。重启后会不会在延迟任务中恢复等待,并在需要的时间触发?您是否必须做一些特别的事情才能做到这一点?

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

【问题讨论】:

    标签: workflow-foundation-4 workflow-foundation


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      相关资源
      最近更新 更多