【问题标题】:How to restart or resume an activity after a time out delay with WorkflowServiceHost and AppFabric?如何在 WorkflowServiceHost 和 AppFabric 超时延迟后重新启动或恢复活动?
【发布时间】:2011-12-06 13:56:34
【问题描述】:

处理长期运行的工作流,由 WorkflowserviceHost 托管,Win Server 2008 R2。 最近发现 appFabric 对管理工作流实例恢复、空闲实例、失败实例等有很大帮助。

有一个基本的序列活动:它发送一封请求批准的邮件,然后按照“接收和发送”来接收响应。最后一个活动允许在持久性存储中自动持久化。 (这是一个很棒的功能!)。 (此序列还使用基于工作流实例 Guid 的内容关联。)

现在我有点卡住了,因为如果批准者没有将消息发送到“接收和发送”活动,我需要在延迟几天后重新启动序列(发送电子邮件)。

我的问题是:如何实现延迟计时器?在流程图中使用带有“while”控制流的“接收和发送”旁边的选择分支? (或平行活动?)

在 AppFabric 中有什么需要配置的吗?我会在 AppFabric 文档(r. jacobs 视频)中找到这些信息吗?你有一个很好的例子吗?

【问题讨论】:

    标签: timeout workflow-foundation-4 appfabric


    【解决方案1】:

    基本方法是将 Pick 活动与包含延迟的分支一起用作超时触发器。如果在 Receieve 中收到适当的消息,一切都很好。如果没有延迟触发,它会工作并循环回到 Pick 的顶部。

    【讨论】:

    • 我在我的 BUILD 会议上展示了这种技术channel9.msdn.com/events/BUILD/BUILD2011/TOOL-801T
    • 啊,Wunderbar。工作得很好。其实我以为线程只会打延迟分支,或者只打接收分支。但实际上,它首先点击了 Receive(并执行了 db persistence!),然后转到了延迟分支。令人惊叹的功能。非常感谢你们俩。
    • 注意一点:当 IIS 被重置时,计时器会停止计时,并且只有在第一个新请求到达 IIS 后才会重新激活。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多