在本周末在伊利诺伊州莱尔举行的 SharePoint 周六会议上,Robert Bogue 表示活动工作流和运行工作流之间存在差异。我在网上看过,但有人能解释一下吗?
如果我可以在服务器上拥有多达数百万个活动工作流,为什么我只能在每台服务器上运行 15 个左右的工作流?
在本周末在伊利诺伊州莱尔举行的 SharePoint 周六会议上,Robert Bogue 表示活动工作流和运行工作流之间存在差异。我在网上看过,但有人能解释一下吗?
如果我可以在服务器上拥有多达数百万个活动工作流,为什么我只能在每台服务器上运行 15 个左右的工作流?
是的,有一个区别:
OnItemChanged
或DelayActivity
。理解这一点的关键是WorkflowEventDeliveryThrottle(这里是 SP2007,因为 2010 的文档不存在)。该属性的标准值为 15。这意味着只有 15 个可以同时运行的并发工作流。达到此限制后,工作流将排队到 OWSTimer,该 OWSTimer 在任意时间后执行工作流(我认为工作流计时器作业设置为每 5 分钟一次)。
可以使用以下方式更改此油门stsadm
(AFAIK Powershell 不起作用 - 您可以通过代码当然设置更改属性SPWebService.WorkflowEventDeliveryThrottle
):
stsadm -o setproperty -pn workflow-eventdelivery-throttle -pv "20"
现在“运行”工作流的最大数量(最好是“可以同时处理的工作流事件的最大数量”)将是 20。请参阅其他一些 SO 帖子,其中有人使用该参数。
有一篇很好的技术博客文章来了解工作流事件处理:关于“workflow-eventdelivery-throttle”参数。
与节流阀类似的是WorkflowEventDeliveryBatchSize,它表示批量处理的工作流事件的最大数量。