是否保证工作流程按FIFO顺序执行? (CRM 2011 RU18内部)

时间:2018-08-10 17:58:51

标签: dynamics-crm dynamics-crm-2011 workflow microsoft-dynamics

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

自定义对象上的

WF1被触发。 WF1导致WF2和WF3以此顺序触发,即它们都进入异步队列。

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

我找不到任何谈论此事的官员,所以也许不应该假设?

1 个答案:

答案 0 :(得分:2)

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

  

任何AsyncOperation.DependencyToken值为 null 的异步操作都独立于队列中的所有其他异步操作执行。不能保证其他独立操作的执行顺序。但是,较早创建的 异步操作在较晚创建的操作之前更有执行机会。 。假定操作没有被推迟并且没有设置为“已完成”状态。

     

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

Read more

激活意味着在CRM WF情况下有所不同。我假设您正在谈论触发WF。如果WF2和WF3在WF1内作为子WF顺序触发,则平台将相应地发出依存令牌以按顺序进行。即首先是WF2,然后是WF3。