Workflow 高吞吐量与Windows工作流基础

Workflow 高吞吐量与Windows工作流基础,workflow,workflow-foundation,Workflow,Workflow Foundation,WWF能否处理在任何时候都并行处理几十条记录的高吞吐量场景 我们希望构建一个每小时处理数千条记录的工作流流程。处理每条记录最多需要一分钟,因为它会进行外部web服务调用 我们正在测试Windows工作流基金会来做这件事。但我们的演示程序显示,当我们在一个工作流实例中使用并行活动同时处理多个记录时,每个记录的处理似乎是按顺序而不是并行运行的 我们应该使用多个工作流实例还是并行活动 有没有已知的高性能WWF处理模式?我认为常见的模式是每个记录使用一个工作流实例。工作流运行时并行运行多个实例 一个工作

WWF能否处理在任何时候都并行处理几十条记录的高吞吐量场景

我们希望构建一个每小时处理数千条记录的工作流流程。处理每条记录最多需要一分钟,因为它会进行外部web服务调用

我们正在测试Windows工作流基金会来做这件事。但我们的演示程序显示,当我们在一个工作流实例中使用并行活动同时处理多个记录时,每个记录的处理似乎是按顺序而不是并行运行的

我们应该使用多个工作流实例还是并行活动


有没有已知的高性能WWF处理模式?

我认为常见的模式是每个记录使用一个工作流实例。工作流运行时并行运行多个实例


一个工作流实例一次运行一个线程。并行活动在此单个线程上顺序调用每个活动的Execute方法。然而,如果并行活动是异步的,并且大部分时间都在等待外部进程完成其工作,那么您仍然可以从并行活动中获得性能改进。例如,如果活动调用外部web方法,然后等待答复-它从Execute方法返回,在等待答复时不会占用此线程,因此并行组中的另一个活动可以同时启动其作业(例如,也调用web服务)。

您肯定应该为每条记录使用新的工作流。每个工作流只运行一个线程,因此即使使用ParallelActivity,它们仍将按顺序处理

我不确定Windows Workflow的性能,但从我在科技教育部听说的.NET 4中,它的工作流组件将比.NET 3.0和3.5中的组件快得多。所以,如果你真的需要大量的性能,也许你应该考虑等待.NET 4。
另一个选择是考虑BizTalk。但是它非常昂贵。

正如您所说,解决方案似乎是对每个记录使用正在运行的工作流实例。我们正在测试这种方法是否可行。我还应该注意到,我们需要全天候连续处理,因此我们需要不断创建或重用实例?