[英]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.