轮询Microsoft Graph API的好策略是什么,这样我就不会';你不会被扼杀吗?
我的目标是维护关于一组用户发送的电子邮件的“实时”(或尽可能接近)信息 我的理想解决方案是定期查询组中所有用户的API消息。此功能尚未实现 我的第二个选择是为组中的每个成员创建订阅(),然后在我意识到事件后请求消息信息。问题是,实际上,我只允许创建20-30个同时订阅(),这可能不够 所以我只能在一个周期内对所有用户进行轮询。这种方法的主要问题是我找不到任何关于有多少请求“太多”的信息,即我被限制了。我希望最大化请求的数量,以最小化完成一个周期所需的时间 想到的一个解决方案是开发一个自适应程序,该程序缓慢地减少请求之间的时间,直到被限制,然后突然增加一些时间,直到找到并保持良好的平衡。不过,这似乎需要做很多工作。现在我的假设是1/秒是我能安全到达的最高值(每次往返平均0.5秒,然后再冷却0.5秒) 处理未知节流限制(尤其是Microsoft Graph)的最佳方法是什么 编辑: 虽然我认为公认的答案是一个很好的回答,但它可能并不适用于所有情况。例如,如果您不想使用365 API,也不介意使用beta功能,那么您可能会签出(delta令牌),它似乎是为与数据实时同步而设计的轮询Microsoft Graph API的好策略是什么,这样我就不会';你不会被扼杀吗?,api,microsoft-graph-api,polling,Api,Microsoft Graph Api,Polling,我的目标是维护关于一组用户发送的电子邮件的“实时”(或尽可能接近)信息 我的理想解决方案是定期查询组中所有用户的API消息。此功能尚未实现 我的第二个选择是为组中的每个成员创建订阅(),然后在我意识到事件后请求消息信息。问题是,实际上,我只允许创建20-30个同时订阅(),这可能不够 所以我只能在一个周期内对所有用户进行轮询。这种方法的主要问题是我找不到任何关于有多少请求“太多”的信息,即我被限制了。我希望最大化请求的数量,以最小化完成一个周期所需的时间 想到的一个解决方案是开发一个自适应程序,
接受答案的唯一潜在缺点是,您仍然需要为您想要跟踪的每个用户订阅(我认为…),并且这些都有限制。非常好奇其他人是如何解决这个问题的。在预览中,您可能想看看。这些API提供了比简单web钩子更健壮的通知模型。您仍然需要建立多个订阅,但我希望您将看到更少的延迟 我的问题是,无论我使用流式通知还是常规订阅,我都需要发出另一个请求来获取消息信息(通知只告诉我发生了什么事情,即创建、更新、删除,它不会告诉我消息本身的任何信息,即发件人、地址、大小等)据我所知,由于我在问题中概述的原因,使用此服务无法实时记录更详细的信息。我想我在这里看到了我的错误。通知将为我指明消息的方向,这将消除我对大量请求的需求。关键是与Microsoft Graph相比,Office 365 API在流式通知中允许多少订阅。不过,还是要谢谢你。