[英]Sharepoint workflow performance Issue
我没有Sharepoint开发方面的经验,因此要求我查看工作流程的性能。 经过一些跟踪,我发现哪个部分执行花费太多时间:
using (var site = new SPSite(WorkflowWeb.Site.ID, workflowProperties.OriginatorUser.UserToken))
{
using (var web = site.OpenWeb(WorkflowWeb.ServerRelativeUrl))
{
var list = web.Lists[WorkflowItem.ParentList.ID];
var item = list.Items[WorkflowItem.UniqueId];
item[new Guid("{54GH32R2-HG66-654a-KKKK-456FFF864654}")] = SPUtility.GetLocalizedString("$Resources:Assigned_Car", "RealB", WorkflowWeb.Language);
item[new Guid("{54FG6215-9584-123g-KJHG-456FFF864654}")] = DateTime.Now;
item.Update();
}
}
这部分大约需要5分钟才能执行。 有什么技巧可以改善性能吗?
正如我提到的那样,我没有SP经验,对工作流程的工作也不了解,我只需要快速而轻松地解决它。
在正常情况下,所提供的代码段无需花费5分钟即可执行。 就执行而言,即使需要打开以前未缓存的SPSite
,执行此代码也SPSite
不到一秒的时间。
是什么需要长达5分钟的SharePoint 2010的默认配置owstimer
(工作流执行异步的过程)是工作流引擎调用这反过来执行工作流程之间的延迟。 根据您对工作流的“性能”(“运行时间”是一个更好的术语)的衡量方式,此空闲时间可能会包含在您的结果中。
边注:
我没有SP经验,对工作流程的工作也不了解,我只需要快速又轻松地解决它。
然后,在基本学习任务之外再使用SharePoint是一个非常糟糕的主意。 性能调优和故障排除绝对不适合完全缺乏该平台知识和经验的人使用。 SharePoint是一个非常复杂的平台,有时其行为远非那么简单。 您应该学习和获得SharePoint方面的经验,而这要简单得多。
现在可以通过更改来更快:
var item = list.Items[WorkflowItem.UniqueId];
至
var item = list.GetItemByUniqueId(WorkflowItem.UniqueId);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.