本周末在伊利诺伊州里尔举行的SharePoint星期六大会上,罗伯特·博格表示,活动工作流程和正在运行的工作流程是有区别的。我在网上找过了,有人能澄清一下吗?
如果我可以在服务器上运行多达数百万个活动工作流,为什么每台服务器只能运行15个左右的工作流?
发布于 2011-06-16 17:46:58
是的,有一个不同之处is a difference:
正在运行的工作流是指当前正在执行某些操作的所有工作流(即,执行activity).
OnItemChanged或理解这一点的关键是WorkflowEventDeliveryThrottle (这里针对SP2007,因为2010年的文档并不存在)。该属性的标准值为15。这意味着只能同时运行15个并发工作流。达到此限制后,工作流会排队到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,它表示在批处理中处理的工作流事件的最大数量。
摘要:
https://stackoverflow.com/questions/6332070
复制相似问题