首页 > 解决方案 > 工作流是否保证以先进先出的顺序执行?(CRM 2011 RU18 本地)

问题描述

假设异步工作流将按照触发顺序执行是否安全?例如

自定义对象上的 WF1 被触发。WF1 导致 WF2 和 WF3 以该顺序触发,即它们都进入异步队列。

我可以安全地假设 WF2 将在 WF3 之前实际执行吗?

我找不到任何官方谈论这个所以也许不应该假设?

标签: dynamics-crmdynamics-crm-2011workflowmicrosoft-dynamics

解决方案


不能保证它将是 FIFO。异步服务可以按可用资源的顺序处理异步作业。

任何AsyncOperation.DependencyToken值为null的异步操作都独立于队列中的所有其他异步操作执行。不保证其他独立操作的执行顺序。但是,较早创建的异步操作更有可能在稍后创建的操作之前执行。这假设操作没有被推迟并且没有设置为 Completed 状态。

必须在创建异步操作时设置依赖令牌。由于 Dynamics 365 会为批量电子邮件、批量删除和导入等批量操作创建异步操作,因此您无法将依赖项令牌用于这些操作。另外,依赖令牌不能用于命令异步注册插件的执行,因为执行插件的异步操作是由队列管理器创建的。

阅读更多

在 CRM WF 案例中,激活方式不同。我假设您正在谈论触发 WF。如果 WF2 和 WF3 在 WF1 中作为子 WF 依次触发,则平台会相应地依次下发 Dependency 令牌。即首先WF2 然后WF3。


推荐阅读