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

时间:2011-03-23 20:57:32

标签: visual-studio-2010 sharepoint workflow workflow-foundation delay

目前,我们在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.

更新:显然这种情况正在发生,因为具有延迟的工作流程正在从另一个工作流程以编程方式启动。这会导致第二个工作流程在同一个线程中启动。有人知道如何以编程方式指定新线程吗?

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

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

1 个答案:

答案 0 :(得分:8)

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

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

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

  

stsadm -o getproperty -pn   工作流eventdelivery油门

这是我的新设置:

  

stsadm -o setproperty -pn   workflow-eventdelivery-throttle -pv   “45”

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

  

stsadm -o getproperty -pn   工作项-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分钟”-ur http://yoursiteurl