我们运行一个网站,通过Google Place API获取位置数据。我们每天有15万次搜索,但由于该网站只上线了几周,我们还没有遇到。我们突然收到一个502错误。控制台中的通知显示:"服务器遇到临时错误,无法完成您的请求。"。这是临时错误吗?我们能做些什么有什么建议吗?该网站已经40分钟没有可用了。
当您在响应中收到5xx状态或UNKNOWN_ERROR时,您应该实现重试逻辑。谷歌在其网络服务文档中有以下建议:
在极少数情况下,服务您的请求可能会出现问题;你可能会收到一个4XX或5XX的HTTP响应代码,或者你的客户端和谷歌服务器之间的TCP连接可能会失败。通常,重新尝试请求是值得的,因为当原始请求失败时,后续请求可能会成功。然而,重要的是不要简单地重复向谷歌服务器发出请求。这种循环行为可能会使客户端和谷歌之间的网络过载,从而给多方带来问题。
更好的方法是在尝试之间增加延迟的情况下重试。通常,每次尝试的延迟都会增加一个乘法因子,这种方法被称为指数后退。
https://developers.google.com/maps/documentation/directions/web-service-best-practices#exponential-退避
然而,如果使用Exponential Backoff重试逻辑没有帮助,并且错误持续很长一段时间,您应该在谷歌问题跟踪器中提交一个错误
我希望这能消除你的疑虑!
更新
昨天(2017年11月6日)谷歌方面出现了一个问题,你可以参考以下错误来解释这个问题:
https://issuetracker.google.com/issues/68938173