是否可以安全地假设异步工作流将按照触发的顺序执行?例如。
自定义对象上的WF1被触发。 WF1导致WF2和WF3以此顺序触发,即它们都进入异步队列。
我可以安全地假设WF2实际上会在WF3之前执行吗?
我找不到任何谈论此事的官员,所以也许不应该假设?
答案 0 :(得分:2)
不能保证它将是FIFO。异步服务可以按可用资源的顺序处理异步作业。
任何
AsyncOperation.DependencyToken
值为 null 的异步操作都独立于队列中的所有其他异步操作执行。不能保证其他独立操作的执行顺序。但是,较早创建的 异步操作在较晚创建的操作之前更有执行机会。 。假定操作没有被推迟并且没有设置为“已完成”状态。创建异步操作时必须设置依赖项令牌。因为Dynamics 365为批量操作(例如批量电子邮件,批量删除和导入)创建了异步操作,所以您无法将依赖项令牌用于这些操作。另外,依赖项令牌不能用于命令异步注册插件的执行,因为执行插件的异步操作是由队列管理器创建的。
激活意味着在CRM WF情况下有所不同。我假设您正在谈论触发WF。如果WF2和WF3在WF1内作为子WF顺序触发,则平台将相应地发出依存令牌以按顺序进行。即首先是WF2,然后是WF3。