• Dynamics 365 Online-60000 API Limits


    最近,Dynamics 365官方文档有最新的发布,就是从2018.3.19开始,会对API请求的数目有个限制:在连续的5分钟里,一个连接用户,针对一个CRM Organization,API请求数不能超过60000。因为还没有正式实行,所以我们先从文档上来理解这个限制。

    一. 理解API Limitation

    虽然“在连续的5分钟里,一个连接用户,针对一个CRM Organization,API请求数不能超过60000”这个描述说的很简单易懂,但是我们还是需要更加深入地了解下到底是怎样的情况。接下来,我们以“什么人在什么时间做了什么”为模板来拆分理解这个限制。

    1. 什么人

    一个连接用户。

    限制针对所有的授权账户(Licensed User),所以目前来看不会有特殊账户跳出这个限制,限制起效果的对象是每个连接账户(Connection User);

    涉及到的Dynamics 365版本:Online V8.x和Online V9.x

    2. 什么时间

    连续的5分钟里。

    这个时间是从账号连接上就开始计算,然后不停的在统计API请求

    3. 做了什么

    API请求不得超过60000。

    API请求不单单是.Net代码后台请求,还包括Form JavaScript请求;

    60000/300s=200/s,也就是说在限制的时间段里,每秒的请求不超过200;

    Multiple API Request只算一次请求,例如.Net Assembly中的ExecuteMultipleRequest,ExecuteTransactionRequest;Web API $batch

    4. 如果超过限制呢?

    首先,如果超过限制,之后的API请求会有怎样呢?

    .Net assemblies会抛出异常,Error Code是-2147015902,异常信息Number of requests exceeded the limit of 60000, measured over time window of 300 seconds;

    Http请求会在Response中返回StatusCode:429,Message:Number of requests exceeded the limit of 60000, measured over time window of 300 seconds.

    其次,如果超过限制,是不是就不能发请求了?

    在一定时间内,要停止发API请求的操作,需要等Request Volumn降到限制数之下以后,才可以继续发送。Request Volumn降到限制数之下的时间不是很明确,可以考虑等5分钟之后再发请求,但最终还得看实际情况。

    二.限制的影响及目前的解决方案

    从理解上看,如果想超过限制,那么在连续的5分钟里,一个用户需要每秒发200次API请求。考虑网络等因素,Dynamics 365的日常使用是完全不受影响的,可能波及的情况是在某个时间段里,需要集成同步大量的数据,这个时候,就会有大量的API请求。如果真的遇到这样的情况,应该怎么办呢?

    1. 如果情况不是很紧急或者很严重,可以等后续的更新。在3.19之后的一周到两周里,可能会有后续相关的更新

    2. 考虑减少并行的线程来减少请求数

    3. 考虑提高一次请求的执行数量,变相的减少请求数,但是这时还需要考虑Service超时情况

    4. 考虑增加执行账户的个数。因为限制是针对每个连接账号的,所以可以增加多个连接账户来分摊60000的限制

    以上对官方资料的一个总结,具体的英文参考资料:

    https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/api-limits#what-should-i-do-if-my-application-exceeds-the-limit

    https://www.kingswaysoft.com/blog/2018/02/27/How-to-Cope-with-the-new-Dynamics-365-API-Limits

  • 相关阅读:
    Vue 常用指令
    Vue起飞前的准备
    Django ORM 高性能查询优化
    Django 缓存、序列化、信号
    关于Django ModelForm渲染时间格式问题
    Django自定义分页并保存搜索条件
    Docker容器中用户权限管理
    Linux三种SSH协议登陆方式
    Docker部署Nextcloud私有网盘
    Zabbix官方部署搭建
  • 原文地址:https://www.cnblogs.com/yobyron/p/8535059.html
Copyright © 2020-2023  润新知