并行执行会冻结服务

本文关键字:服务 冻结 并行执行 | 更新日期: 2023-09-27 18:16:58

我有一个问题,理解工作流调度程序是如何工作的,我的架构是这样的:我有几个操作,从UI异步调用一个服务,它初始化一个新的WorkflowApplication并调用Run()方法,然后它需要一些时间来完成操作,它经过一些步骤,然后一个活动做大的工作

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

谁能帮我理解一下?有办法避免这种情况吗?

并行执行会冻结服务

给人的第一印象是发生了线程饥饿,或者类似于其他资源争用的情况。

你是使用WorkflowApplication还是WorkflowServiceHost来执行你的工作流?我认为是第一点,但你的问题不是很清楚。

如果你正在使用一个工作流应用程序:你是否设置了SynchronisationContext并且你是否在完成请求之前等待工作流完成?

你启动了多少个工作流?. NET请求是否正在执行?