2

在本周末在伊利诺伊州莱尔举行的 SharePoint 周六会议上,Robert Bogue 表示活动工作流和运行工作流之间存在差异。我在网上看过,但有人能解释一下吗?

如果我可以在服务器上拥有多达数百万个活动工作流,为什么我只能在每台服务器上运行 15 个左右的工作流?

4

1 回答 1

1

是的,有一个区别:

  • “运行”工作流是所有当前正在做某事(即执行活动)的工作流。
  • “活动”工作流程只是所有“正在运行”但目前没有做任何事情的工作流程 - 例如等待OnItemChangedDelayActivity

理解这一点的关键是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,它表示批量处理的工作流事件的最大数量。


概括:

  • 您可以拥有数以千计的活动工作流程,例如,所有工作流程都在等待更改工作流程项目。他们没有运行,没有完成 - 只是活跃。
  • 可以同时处理的工作流事件数量有限(您称其为“正在运行”的工作流
  • 您还可能有数千个正在运行的工作流,例如,所有这些工作流都可能被设置为 5 分钟的延迟活动触发,但只有有限数量的工作流同时运行,其余工作流排队等待稍后执行。
于 2011-06-16T09:46:57.610 回答