活动工作流程与运行工作流程
本周末在伊利诺伊州莱尔举行的 SharePoint Saturday 活动上,Robert Bogue 表示活动工作流和正在运行的工作流之间存在差异。我在网上查了一下,有人能解释一下吗?
如果服务器上可以有多达数百万个活动工作流程,为什么每台服务器只能运行 15 个左右的工作流程?
At SharePoint Saturday in Lisle, IL this weekend, Robert Bogue said there's a difference between active and running workflows. I've looked on the web, but can someone clarify?
If I can have up to millions of active workflows on the server, why can I only have 15 or so running workflows per server?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,有有区别:
OnItemChanged
或DelayActivity
。理解这一点的关键是 WorkflowEventDeliveryThrottle(此处适用于 SP2007,因为 2010 的文档不存在)。该属性的标准值为 15。这意味着只有 15 个并发工作流可以同时运行。达到此限制后,工作流将排队到 OWSTimer 中,该 OWSTimer 在任意时间后执行工作流(我认为工作流计时器作业设置为每 5 分钟一次)。
可以使用
stsadm
更改此 Throttle(据我所知 Powershell 不起作用 - 您可以通过课程设置SPWebService.WorkflowEventDeliveryThrottle
的代码更改属性):现在最大数量“正在运行”的工作流程(最好是“可以同时处理的工作流程事件的最大数量”)为 20。请参阅一些其他 SO 帖子,其中有人使用该参数。
有一篇很好的技术博客文章可以帮助您了解工作流事件处理:关于“workflow-eventdelivery-throttle”参数。
与限制类似的是 WorkflowEventDeliveryBatchSize 表示批量处理的工作流事件的最大数量。
Summary:
Yes, there is a difference:
OnItemChanged
orDelayActivity
.The key to understand this is WorkflowEventDeliveryThrottle (here for SP2007, because the documentation for 2010 doesn't exist). The standard value for this is property is 15. That means that there are only 15 concurrent workflow which can run at the same time. After this limit is reached the workflows get queued to the OWSTimer which executes the workflows after some arbitrary time (I think the workflow timer job is set to every 5 minutes).
This Throttle can be changed by using
stsadm
(AFAIK Powershell doesn't work - you can change the property via code of course settingSPWebService.WorkflowEventDeliveryThrottle
):Now the maximum number of "running" workflows (better would be "maximum number of workflow events that can be processes simultaneously") would be 20. See some other SO post where someone plays with the parameter.
There is a nice technical blog post to understand Workflow Event Processing: About the “workflow-eventdelivery-throttle” parameter.
Similar to the throttle is the WorkflowEventDeliveryBatchSize which denotes the maximum number of workflow events that are processed in a batch.
Summary: