【问题标题】:Google Contacts API Slow谷歌通讯录 API 慢
【发布时间】:2015-05-31 05:42:21
【问题描述】:

几年来,我们一直在为我们的 CRM 产品使用 Google Contacts 和 Google Calendar API。直到今天早上 8 点,一切都还好,当我们看到对联系人 API 执行基本 REST 命令时出现巨大延迟。

例如,我刚刚使用 API 创建了一个 Google 联系人,需要 4 分钟才能做出响应。但是,它确实在 4 分钟后创建了联系人。

我的问题是 - 是否有某种 DDS 阻止算法可能会造成这些延迟?过去 24 小时内 API 是否发生了变化?我进入谷歌开发者控制台,看到谷歌日历已经记录了许多成功的调用。对于 Google 联系人 API,我看到已记录 0 个呼叫。不确定这是否与问题有关,但想提一下以防万一。

我正在使用 google-api-php-client (版本是 3/6/2012)

我们没有进行任何更改 - 但我们的客户现在看到超时。我能够跟踪代码,发现问题出在我们这样发出 GET 时:

https://www.google.com/m8/feeds/contacts/default/full/?showdeleted=false&max-results=200&start-index=2&key=AIzaSyB4yjI1dfHt-nMmtbk0JUFMqgQzlrRFUlQ

使用 curl_exec()

我们使用 0.5 版本的 PHP API 进行调用,尽管我也使用 1.x 版本进行了测试并遇到了同样的问题。我为 CURL 设置了一个超时值并返回此错误:

异常 HTTP 错误:(200) 操作在 100000 毫秒后超时,收到 73931 个字节

我也能够做一个 curl_getinfo() 并得到这个:

[url] => https://www.google.com/m8/feeds/contacts/default/full/?showdeleted=false&max-results=200&start-index=2&key=AIzaSyB4yjI1dfHt-nMmtbk0JUFMqgQzlrRFUlQ [content_type] => 应用程序/原子+xml;字符集=UTF-8;类型=饲料 [http_code] => 200 [header_size] => 550 [请求大小] => 387 [文件时间] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [总时间] => 99.94964 [namelookup_time] => 0.03171 [连接时间] => 0.050253 [pretransfer_time] => 0.116627 [大小上传] => 0 [size_download] => 87801 [速度下载] => 878 [速度上传] => 0 [下载内容长度] => -1 [上传内容长度] => -1 [starttransfer_time] => 0.387812 [重定向时间] => 0 [redirect_url] => [primary_ip] => 74.125.141.104 [certinfo] => 数组 ( )

[primary_port] => 443
[local_ip] => 199.230.52.14
[local_port] => 53914

)

speed_download 似乎很不寻常。太慢了!

斯科特。

【问题讨论】:

    标签: google-api-php-client google-contacts-api


    【解决方案1】:

    好的,我能够将问题追溯到服务器本身。我与托管公司进行了交谈,当他们重新定位服务器时,他们将以太网端口设置为半双工。他们切换到全双工,现在一切正常。所以,这是一个硬件问题。

    【讨论】:

      【解决方案2】:

      根据您的描述,我想到了很多事情。请阅读以下内容,我会尽力列出所有我能提供的帮助:

      您是否检查过开发者控制台,看看您是否可能达到了联系人/日历 API 的配额限制(我知道您看到联系人为 0,但奇怪的行为)?既然您提到您已经使用这两种 API 几年了,那将是我的第一个建议。即使您可能没有达到您的每日配额限制,您也可能达到了您的每秒配额限制,在这种情况下,修复很简单 - 从开发者控制台增加您的每秒配额/用户值。如果您可能同时满足这两个要求,您也可以轻松地从开发者控制台请求更高的配额。

      但是,通常强烈建议您使用 Exponential Back-off Algorithm 以减少获得成功响应所需的请求数量并最大限度地提高并发环境中的请求吞吐量。

      虽然我不确定为什么您会看到针对您的联系人 API 记录的 0 个调用。一个建议是检查您是否正在检查正确的项目,或者是否使用了从开发人员控制台中的另一个应用程序创建的密钥/客户端密码。如果问题仍然存在,我建议您报告here 或通过开发者控制台联系支持。

      最后但并非最不重要的一点是,确保您没有使用已弃用的联系人 API 的 version

      【讨论】:

      • 好的,我检查了开发者控制台,我的限制非常大。我还将每秒查询的最大数量设置为一个较高的值。我没有看到行为有任何变化。
      猜你喜欢
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      • 2011-09-02
      相关资源
      最近更新 更多