有没有办法绕过并发查询上更新的Dynamics 365 Web API限制 - c#

当我尝试将多批记录迁移到CRM时,Dynamics 365 Web API引发以下错误:

传入请求的合并执行时间超过了限制
在300秒的时间范围内为1,200,000毫秒。减少
并发请求数或减少请求的持续时间,以及
稍后再试。

我正在使用并行for循环,以使用Web API将多批数据迁移到CRM。我需要具有很高的吞吐量,因为我需要在有限的时间内迁移数百万条记录。

有没有办法绕过这个问题?限制线程数会导致吞吐量遭受重大打击。
我需要一个解决方案,以便可以同时(同时)迁移数百个批次。

我使用的是Dynamics 365的Web API v9.1。我使用的是并行for循环,并且在每次迭代中,都会拾取一大块数据(比如说批量大小为500),并且该线程将这500条记录迁移到CRM 。我希望将500条记录的多个线程迁移到CRM。

我尝试通过使用多个用户来解决此问题(因为限制仅限于每个用户),但是该解决方案未被客户端接受。

另一个解决方案是减少并发线程数。这导致吞吐量降低。

我不想限制线程数。是否有解决此问题的方法?

参考方案

API Limits是已记录的功能。

该限制将有助于提供一定程度的保护,免受随机和
请求量意外增加,威胁可用性
和Dynamics 365平台的性能特征。

确实没有办法将其关闭。您可以尝试向Microsoft索取支持票,以了解他们是否愿意,但似乎它们存在的目的是为所有用户(不仅是您的客户)保护该平台,所以请不要屏住呼吸。

文档本身有一个答案,尽管它可能不是您想要的。

如果收到这些响应,则您的应用程序应停止发送API
直到请求量低于限制。

您可能需要注意以下几点:

多个用户;您的客户说不,但您没有说原因。如果您担心许可证成本,可以create multiple non-interactive user accounts。

由于管理用户无权访问客户数据
以及任何与客户互动的功能,
需要Dynamics 365的客户参与应用程序(在线)许可证
(设置后)。

Use ExecuteMultiple to improve performance for bulk data load。

您可以使用ExecuteMultipleRequest消息来支持更高
Dynamics 365 for Customer中的吞吐量批量消息传递方案
参与度,尤其是在Dynamics 365 for Customer的情况下
互联网延迟可能是最大限制的互动应用
因子。

您对此方法有些了解。

不允许递归。
默认情况下,最大批处理大小为1000。
每个组织最多有2个并发ExecuteMultipleRequest执行。

除了一些经验外,Dynamics数据迁移可能需要很长时间才能完成,通常最好的解决方案是耐心。

编辑:自从我以这种方式写回... April(!)以来,已经发生了很多变化

如果您使用通用数据服务在Power Platform(例如CRM / CE / Dynamics Online)上;前往limitations查看新限制的工作原理。此外,对ExecuteMultiple的并发限制已被Common Data Service API limits overview(并替换为上述API限制)。

Dropbox API限制 - php

考虑到我不是业余爱好者,是否可以使用dropbox api直接在我的网页上显示我dropbox帐户上的文件夹的内容,并允许dropbox用户向其添加内容(也可以直接从我的网站)向其添加内容专业的编码员。 参考方案 您可能会对Dropbox Chooser和Saver JavaScript小部件感兴趣,这些小部件允许您执行类似操作。如果您的用户不仅仅使用Dro…

Selenium Web Driver访问Jquery中的Javascript全局变量 - javascript

我正在尝试使用Selenium在Python中运行功能测试,我想在某个页面上声明的Javascript中检索全局变量的值。通常,browser.execute_script("return globalVar;")可以正常工作,但是在$(document).ready(function(){中声明了该变量,Selenium无法找到它。因此…

我如何将React js集成到Play Web App中 - javascript

Improve this question 我正在尝试使用play框架创建一个Web应用程序,并且想在前端使用react js。如何在我的Play Web应用程序中集成react js? 参考方案 我对游戏框架的知识为零,但在您的Web应用程序中集成React并不难。如果您已编译reactjs JS文件。只需将其包含在索引页的标头标记中即可。并声明带有ID的…

Web API未从AngularJS接收日期 - javascript

嗨,我正在用angularjs开发Web应用程序。我在angularjs中有一个约会,例如13-10-2017。在C#中我有以下字段 public DateTime LicenseExpiryDate { get; set; } 当我在ajax请求中发送13-10-2017时,LicenseExpiryDate接受为0001-01-01。我可以知道如何解决这…

Web API中的电子邮件确认 - c#

我有Web API应用程序,并且想要实现电子邮件确认。现在,我有了采用address的方法-客户端主机,它将位于回调URL uriBuilder中,并将由用户从邮件中打开:public async Task<IdentityResult> RegisterAsync(string email, string userName, string pa…