延迟活动并不总是在Sharepoint 2010工作流程中有效

Jus*_*ink 5 sharepoint workflow delay visual-studio-2010 workflow-foundation

目前,我们在sharepoint 2010中有一个具有延迟活动的顺序工作流程.

延迟时间设置为五分钟.工作流程会检查五个任务的状态,并根据结果延迟或完成.

我将工作流历史记录项设置为在延迟之前和延迟之后立即写入.

有时延迟不会触发,例如如下:

延迟活动在一个项目上每隔5分钟发射3整天,然后由于没有特殊原因它没有醒来17个小时......然后开火并完成.

有任何想法吗?我已经验证所有的计时器服务都正常运行等.

另一件奇怪的事情是,可以运行20个工作流程项目,只有4或5个会出现此问题,这看起来完全是随机的.

另外:如果我对导致工作流程重新运行的工作流程项目进行了更改,则延迟活动将在下一个5分钟周期唤醒.

更新:我发现错误日志中的错误是在延迟唤醒失败时发生的.

Workflow ID=07acf527-d5cb-41c7-a8e4-58329652dc53 attempting to run on a thread currently executing workflow ID=fe2d7670-7d3e-4e6a-b024-0cc3485aa73b.  This workflow will be run at a later time.
Run Code Online (Sandbox Code Playgroud)

更新:显然这是因为具有延迟的工作流程正在从另一个工作流程以编程方式启动.这会导致第二个工作流程在同一个线程中启动.任何人都知道如何以编程方式指定新线程?

更新2:我设置了一些工作流程,以5分钟的延迟运行,以查看睡眠周期是否有任何模式.工作流程以5分钟的间隔睡眠约6小时,然后计时器开始增加如下5分钟15分钟45分钟1.5小时3小时6小时12小时

看起来延迟计时器在大多数情况下都会翻倍.我相信MS可以解决这个问题,我有大量的日志和示例.

Jus*_*ink 8

此问题已得到解决.我忘了发布决议......

需要修改三个设置.工作流程节流,工作流程批处理和隐藏的工作流程计时器.

您可以通过运行以下命令来检查当前的油门设置:

stsadm -o getproperty -pn workflow-eventdelivery-throttle

这是我的新设置:

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

您可以通过运行以下命令来检查当前批量大小设置:

stsadm -o getproperty -pn workitem-eventdelivery-batchsize

这是我的新设置.

stsadm -o setproperty -pn workitem-eventdelivery-batchsize -pv"250"

您可以通过运行以下命令来检查当前间隔设置,在该命令中,将URL替换为SharePoint应用程序的有效路径:

stsadm -o getproperty -pn job-workflow -url http:// yoursiteurl

这是我的设置:

stsadm -o setproperty -pn job-workflow -pv"0到59之间的每5分钟"-url http:// yoursiteurl