Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Microsoft graph api Graph Mail API:504网关超时错误_Microsoft Graph Api - Fatal编程技术网

Microsoft graph api Graph Mail API:504网关超时错误

Microsoft graph api Graph Mail API:504网关超时错误,microsoft-graph-api,Microsoft Graph Api,我有一个从Office 365邮箱下载邮件的脚本。在脚本的日志中,我注意到许多响应都有此错误响应:504,网关超时。这种错误一周发生几次,有时是零星的。以下是最近几次事件的日期时间: 2018年5月12日07:51:44下午 2018年5月12日下午5:50:58 2018年5月12日03:50:54下午 2018年5月12日03:51:01上午 2018年4月12日下午5:53:13 2018年11月28日03:50:53上午 2018年11月22日晚上11:50:53 剩下的时间里,脚本

我有一个从Office 365邮箱下载邮件的脚本。在脚本的日志中,我注意到许多响应都有此错误
响应:504,网关超时
。这种错误一周发生几次,有时是零星的。以下是最近几次事件的日期时间:

  • 2018年5月12日07:51:44下午
  • 2018年5月12日下午5:50:58
  • 2018年5月12日03:50:54下午
  • 2018年5月12日03:51:01上午
  • 2018年4月12日下午5:53:13
  • 2018年11月28日03:50:53上午
  • 2018年11月22日晚上11:50:53
剩下的时间里,脚本可以完美无误地工作。此错误代码表示的状态为:

“服务器在充当代理时,未及时收到请求 尝试访问时需要访问的上游服务器的响应 完成请求。可能与503一起发生。“


我看过其他一些关于这个问题的帖子,但没有一篇真正解释了为什么会出现这个错误,或者可以采取什么措施来避免它。如果服务器响应超时,这是否意味着我需要更改请求?现在,我正在使用
@odata.nextLink
响应参数请求1000个消息块中的下一个消息块

出现
504
最有可能是由页面大小引起的
1000
是一个巨大的页面大小,请求很可能在试图一次获取那么多电子邮件时超时(特别是如果电子邮件本身很大的话)

MicrosoftGraph是一个API聚合器,它将每个传入的请求转发给一个或多个底层API。在本例中,它将请求代理到Exchange/Outlook API

由于页面大小为
1000
,Graph必须等待Exchange编写包含1000封电子邮件的响应,并将其传回Graph进行最终处理(Graph重写、过滤和合并API响应,以便无论您点击的端点是什么,都能获得一致的OData)。
504-网关超时
异常意味着图形在底层工作负载返回结果之前超时


使用较小的页面大小(100-300是非常典型的)应该确保底层工作负载可以在超时之前做出响应。有些人试图一次减少100人,直到他们被淘汰,但我不推荐这种方法,因为它不可避免地意味着你没有解决问题,只是引入了一种更罕见的比赛条件

出现
504
最有可能是由页面大小引起的
1000
是一个巨大的页面大小,请求很可能在试图一次获取那么多电子邮件时超时(特别是如果电子邮件本身很大的话)

MicrosoftGraph是一个API聚合器,它将每个传入的请求转发给一个或多个底层API。在本例中,它将请求代理到Exchange/Outlook API

由于页面大小为
1000
,Graph必须等待Exchange编写包含1000封电子邮件的响应,并将其传回Graph进行最终处理(Graph重写、过滤和合并API响应,以便无论您点击的端点是什么,都能获得一致的OData)。
504-网关超时
异常意味着图形在底层工作负载返回结果之前超时


使用较小的页面大小(100-300是非常典型的)应该确保底层工作负载可以在超时之前做出响应。有些人试图一次减少100人,直到他们被淘汰,但我不推荐这种方法,因为它不可避免地意味着你没有解决问题,只是引入了一种更罕见的比赛条件

1000
真的很大。如果你把这一点降低到更合理的水平,比如每页
100
200
,会有什么变化?@marclafler我会试试看。不过,使用这么小的单元不会触发“太多请求”错误?这取决于您发出的请求数量,但只要您是,任何限制都不太可能导致问题。@Marclafler现在已经几周了,我没有看到任何504个错误,所以似乎需要更改请求的页面大小(从1000到200)已解决问题。
1000
确实很大。如果你把这一点降低到更合理的水平,比如每页
100
200
,会有什么变化?@marclafler我会试试看。不过,使用这么小的单元不会触发“太多请求”错误?这取决于您发出的请求数量,但只要您是,任何限制都不太可能导致问题。@Marclafler现在已经几周了,我没有看到任何504个错误,所以似乎需要更改请求的页面大小(从1000到200)解决了这个问题。