有没有办法绕过更新后的 Dynamics 365 web API 对并发查询的限制
Is there a way to bypass the updated Dynamics 365 web API limits on concurrent queries
当我尝试将多批记录迁移到 CRM 时,Dynamics 365 Web API 抛出以下错误:
Combined execution time of incoming requests exceeded limit of
1,200,000 milliseconds over time window of 300 seconds. Decrease
number of concurrent requests or reduce the duration of requests and
try again later.
我正在使用并行 for 循环将多批数据迁移到使用 Web 的 CRM API。我需要高吞吐量,因为我需要在有限的时间内迁移数百万条记录。
有没有办法绕过这个问题?限制线程数会导致吞吐量受到重大影响。
我需要一个解决方案,以便我可以同时(并发)迁移数百个批次。
我正在使用 Web API v9.1 of dynamics 365。我正在使用并行 for 循环,在每次迭代中,都会提取一大块数据(假设批量大小为 500),并且该线程将这 500 条记录迁移到 CRM。我希望将每个 500 条记录的多个线程迁移到 CRM。
我尝试通过使用多个用户来解决这个问题(因为限制仅限于每个用户),但客户不接受该解决方案。
另一个解决方案是减少并发线程数。这导致吞吐量降低。
我不想限制线程数。这个问题有解决方法吗?
API Limits 是已记录的功能。
The limit will help provide a level of protection from random and
unexpected surges in request volumes that threaten the availability
and performance characteristics of the Dynamics 365 platform.
确实没有办法关闭它们。您可以尝试向 Microsoft 提出支持请求,看看他们是否愿意,但它们的存在似乎是为了保护所有用户(而不仅仅是您的客户)的平台,所以请不要屏住呼吸。
文档本身有答案,但可能不是您想要的答案。
If you get these responses, your application should stop sending API
requests until the volume of requests is below the limit.
您可以研究的几件事:
- 多个用户;你的客户说不,但你没有说为什么。如果担心许可费用,您可以 create multiple non-interactive user accounts.
Since the administrative user does not have access to customer data
and any of the customer engagement functionalities, it does not
require a Dynamics 365 for Customer Engagement apps (online) license
(after setup).
You can use the ExecuteMultipleRequest message to support higher
throughput bulk message passing scenarios in Dynamics 365 for Customer
Engagement , particularly in the case of Dynamics 365 for Customer
Engagement apps where Internet latency can be the largest limiting
factor.
你对这种方法有些limitations。
- 不允许递归。
- 最大批量大小默认为 1000。
- 每个组织最多可同时执行 2 次 ExecuteMultipleRequest。
顺便说一句,根据经验,动态数据迁移可能需要很长时间才能完成,通常解决此问题的最佳方法是耐心等待。
编辑:自从我在……四月 (!) 写这篇文章以来,发生了很多变化
如果您在 Power Platform 上(例如 CRM/CE/Dynamics 在线)使用 Common Data Service;前往 Common Data Service API limits overview to see how the new limits work. Furthermore the concurrent limit on ExecuteMultiple has been removed(并替换为上面的 API 限制)。
当我尝试将多批记录迁移到 CRM 时,Dynamics 365 Web API 抛出以下错误:
Combined execution time of incoming requests exceeded limit of 1,200,000 milliseconds over time window of 300 seconds. Decrease number of concurrent requests or reduce the duration of requests and try again later.
我正在使用并行 for 循环将多批数据迁移到使用 Web 的 CRM API。我需要高吞吐量,因为我需要在有限的时间内迁移数百万条记录。
有没有办法绕过这个问题?限制线程数会导致吞吐量受到重大影响。 我需要一个解决方案,以便我可以同时(并发)迁移数百个批次。
我正在使用 Web API v9.1 of dynamics 365。我正在使用并行 for 循环,在每次迭代中,都会提取一大块数据(假设批量大小为 500),并且该线程将这 500 条记录迁移到 CRM。我希望将每个 500 条记录的多个线程迁移到 CRM。
我尝试通过使用多个用户来解决这个问题(因为限制仅限于每个用户),但客户不接受该解决方案。
另一个解决方案是减少并发线程数。这导致吞吐量降低。
我不想限制线程数。这个问题有解决方法吗?
API Limits 是已记录的功能。
The limit will help provide a level of protection from random and unexpected surges in request volumes that threaten the availability and performance characteristics of the Dynamics 365 platform.
确实没有办法关闭它们。您可以尝试向 Microsoft 提出支持请求,看看他们是否愿意,但它们的存在似乎是为了保护所有用户(而不仅仅是您的客户)的平台,所以请不要屏住呼吸。
文档本身有答案,但可能不是您想要的答案。
If you get these responses, your application should stop sending API requests until the volume of requests is below the limit.
您可以研究的几件事:
- 多个用户;你的客户说不,但你没有说为什么。如果担心许可费用,您可以 create multiple non-interactive user accounts.
Since the administrative user does not have access to customer data and any of the customer engagement functionalities, it does not require a Dynamics 365 for Customer Engagement apps (online) license (after setup).
You can use the ExecuteMultipleRequest message to support higher throughput bulk message passing scenarios in Dynamics 365 for Customer Engagement , particularly in the case of Dynamics 365 for Customer Engagement apps where Internet latency can be the largest limiting factor.
你对这种方法有些limitations。
- 不允许递归。
- 最大批量大小默认为 1000。
- 每个组织最多可同时执行 2 次 ExecuteMultipleRequest。
顺便说一句,根据经验,动态数据迁移可能需要很长时间才能完成,通常解决此问题的最佳方法是耐心等待。
编辑:自从我在……四月 (!) 写这篇文章以来,发生了很多变化
如果您在 Power Platform 上(例如 CRM/CE/Dynamics 在线)使用 Common Data Service;前往 Common Data Service API limits overview to see how the new limits work. Furthermore the concurrent limit on ExecuteMultiple has been removed(并替换为上面的 API 限制)。