【发布时间】:2018-03-23 00:43:54
【问题描述】:
我们的插件在“检索”消息上运行缓慢,因此我在代码中放置了一些时间戳以确定瓶颈在哪里。我意识到在手术前阶段结束和手术后阶段开始之间间歇性地发生了 7 秒的延迟。
结束前 - 2018 年 3 月 22 日上午 11:57:55 后期开始 - 2018 年 3 月 22 日上午 11:58:02
protected virtual void RetrievePreOperation()
{
var message = $"END PRE - {DateTime.Now}";
PluginExecutionContext.SharedVariables.Add("message", message);
}
protected virtual void RetrievePostOperation()
{
// Stop recursive calls
if (PluginExecutionContext.Depth > 1) return;
if (PluginExecutionContext.MessageName.ToLower() != Retrieve ||
!PluginExecutionContext.InputParameters.Contains("Target") ||
PluginExecutionContext.Stage != (int)PipelineStages.PostOperation)
return;
var entity = (Entity)PluginExecutionContext.OutputParameters["BusinessEntity"];
string message = PluginExecutionContext.SharedVariables["message"].ToString();
message += $"POST STAGE START - {DateTime.Now}";
}
任何关于如何减少这种延迟的想法都将不胜感激。谢谢
【问题讨论】:
-
Post Retrieve 插件步骤是否注册为异步?
标签: dynamics-crm microsoft-dynamics