并行执行冻结服务

时间:2011-12-06 09:35:41

标签: c# .net workflow workflow-foundation workflow-foundation-4

我有一个问题,了解Workflow Scheduler的工作原理,我的架构如下:我有几个操作从UI调用异步服务,它启动了一个新的WorkflowApplication并调用Run()方法,而不需要花费一些时间来完成操作,它通过一些步骤,而不是一项活动做大工作

据我所知,工作流程调度程序可以处理一个工作流程实例,但是当工作流程正在运行时,似乎“冻结”了我的整个网站,我无法访问任何其他服务,它变得很慢直到所有工作流程完成。 (我也尝试过只调用一次服务并启动其中的所有工作流程,但行为完全相同)

有人可以帮我理解吗?有一些方法可以避免这种情况吗?

1 个答案:

答案 0 :(得分:0)

第一印象是线程饥饿或与其他资源争用类似的事情正在继续。

您是否正在使用WorkflowApplication或WorkflowServiceHost来执行工作流程?我相信第一个,但你的问题并不十分清楚。

如果您正在使用WorkflowApplication:您是否正在设置SynchronisationContext并且在等待完成请求之前完成工作流程?

您启动了多少个工作流程并估计有多少ASP.NET请求正在执行?