dynamics-crm - 工作流是否保证以先进先出的顺序执行?(CRM 2011 RU18 本地)
问题描述
假设异步工作流将按照触发顺序执行是否安全?例如
自定义对象上的 WF1 被触发。WF1 导致 WF2 和 WF3 以该顺序触发,即它们都进入异步队列。
我可以安全地假设 WF2 将在 WF3 之前实际执行吗?
我找不到任何官方谈论这个所以也许不应该假设?
解决方案
不能保证它将是 FIFO。异步服务可以按可用资源的顺序处理异步作业。
任何
AsyncOperation.DependencyToken
值为null的异步操作都独立于队列中的所有其他异步操作执行。不保证其他独立操作的执行顺序。但是,较早创建的异步操作更有可能在稍后创建的操作之前执行。这假设操作没有被推迟并且没有设置为 Completed 状态。必须在创建异步操作时设置依赖令牌。由于 Dynamics 365 会为批量电子邮件、批量删除和导入等批量操作创建异步操作,因此您无法将依赖项令牌用于这些操作。另外,依赖令牌不能用于命令异步注册插件的执行,因为执行插件的异步操作是由队列管理器创建的。
在 CRM WF 案例中,激活方式不同。我假设您正在谈论触发 WF。如果 WF2 和 WF3 在 WF1 中作为子 WF 依次触发,则平台会相应地依次下发 Dependency 令牌。即首先WF2 然后WF3。
推荐阅读
- java - Gradle:对构建和测试使用不同的 jre
- python - 如何在谷歌协作笔记本中显示输出?
- node.js - 如何为其他字段的每个值获取字段的不同值?
- docusignapi - 标记的 DocuSign SOAP API 设置默认值
- angular - 角度路由解析器 rxjs
- mysql - Keycloak/Docker 重新生成 MySQL 数据库表
- python - 在 Pandas DataFrame 中查找第一列匹配条件的矢量化方法
- android - 离子存储不适用于 Android 设备
- c# - 指示 Resharper 忽略 C# 的文件夹
- javascript - 用另一个指令包装 Angular 2+ 指令