主动与运行工作流程

时间:2011-06-13 14:51:40

标签: sharepoint workflow sharepoint-workflow

本周末在伊利诺斯州Lisle的SharePoint周六,Robert Bogue表示活动和运行工作流程之间存在差异。我看过网络,但有人可以澄清一下吗?

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

1 个答案:

答案 0 :(得分: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.请参阅某些人other SO post使用参数。

有一篇很好的技术博客文章来了解工作流程事件处理:About the “workflow-eventdelivery-throttle” parameter

与节流类似的是WorkflowEventDeliveryBatchSize,表示批量处理的工作流事件的最大数量。

<小时/> 的总结:

  • 您可以拥有数千个有效工作流程,例如所有等待工作流项目都要更改。它们没有运行,没有完成 - 只是活跃。
  • 可以同时处理数量有限的工作流程事件(您称之为“正在运行”的工作流程)
  • 您还可以拥有数千个正在运行的工作流程,例如所有这些都可能被设置为5分钟的延迟活动触发,但只有少数它们同时运行,其余部分排队等待以后执行。