目前,我们在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可以解决这个问题,我有大量的日志和示例。
答案 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