【问题标题】:dynamics crm 365 plugin delay between execution pipeline stages执行管道阶段之间的动态 crm 365 插件延迟
【发布时间】: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


【解决方案1】:

如果您的插件步骤在异步执行模式下注册,此延迟完全取决于异步服务负载和等待调用/作业的管道。您可以将其切换为同步。

如果它在同步模式下注册但仍然存在间歇性延迟,这取决于很多事情,例如哪个实体、查询和复杂逻辑(如果有)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2021-01-31
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    相关资源
    最近更新 更多