活动与运行工作流 [英] Active vs. Running Workflow

查看:48
本文介绍了活动与运行工作流的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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?

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

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?

推荐答案

是的,有区别:

  • 正在运行" 工作流是指当前正在做某事(即执行活动)的所有工作流.
  • 活动" 工作流只是正在运行"但目前没有做任何事情的所有工作流 - 例如等待 OnItemChangedDelayActivity.
  • "Running" Workflows are all which currently are doing something (i.e. executing an activity).
  • "Active" Workflows are simply all which are "running" but currently are not doing anything - e.g. waiting for OnItemChanged or DelayActivity.

理解这一点的关键是WorkflowEventDeliveryThrottle(此处针对 SP2007,因为 2010 的文档不存在).此属性的标准值为 15.这意味着只有 15 个并发工作流可以同时运行.达到此限制后,工作流将排队到 OWSTimer,OWSTimer 在任意时间后执行工作流(我认为工作流计时器作业设置为每 5 分钟一次).

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).

可以使用 stsadm 更改此 Throttle(AFAIK Powershell 不起作用 - 您可以通过设置 SPWebService.WorkflowEventDeliveryThrottle 的代码更改属性):

This Throttle can be changed by using stsadm (AFAIK Powershell doesn't work - you can change the property via code of course setting SPWebService.WorkflowEventDeliveryThrottle):

stsadm -o setproperty -pn workflow-eventdelivery-throttle -pv "20"

现在运行"工作流的最大数量(更好的是可以同时处理的工作流事件的最大数量")将为 20.请参阅一些其他 SO 帖子,其中有人玩弄参数.

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.

有一篇很好的技术博客文章来了解工作流事件处理:关于workflow-eventdelivery-throttle"参数.

There is a nice technical blog post to understand Workflow Event Processing: About the "workflow-eventdelivery-throttle" parameter.

与节流阀类似的是 WorkflowEventDeliveryBatchSize 表示批处理中处理的最大工作流事件数.<小时>总结:

Similar to the throttle is the WorkflowEventDeliveryBatchSize which denotes the maximum number of workflow events that are processed in a batch.


Summary:

  • 您可以拥有数千个活动工作流,例如都在等待工作流项被更改.它们没有运行,没有完成 - 只是处于活动状态.
  • 可以同时处理的数量有限的工作流事件(您称之为正在运行的"工作流)
  • 您还可以有数千个正在运行的工作流,例如所有这些都可能被设置为 5 分钟的延迟活动触发,但只有少数几个同时运行,其余的将排队等待稍后执行.
  • You can have thousands of active workflows, e.g. all waiting for the workflow item to be changed. They are not running, not finished - simply active.
  • There is a limited number of workflow events that can be processed at the same time (you called it "running" workflows)
  • You could also have thousands of running workflows, e.g. all of them might get triggered by a delay activity set to 5 minutes, but only a limited number of them is running simultaneously, the rest of them gets queued for later execution.

这篇关于活动与运行工作流的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆