如何优雅地处理已故的API

时间:2009-06-16 22:04:13

标签: php api curl

今天Twitter正在关闭我正在考虑如何在API关闭时最好地处理对API的调用。如果我使用CURL来调用它们的api,我如何使脚本快速失败并处理错误以免使应用程序变慢?

3 个答案:

答案 0 :(得分:2)

使用curl_setopt

curl_setopt($yourCurlHandle, CURLOPT_CONNECTTIMEOUT, '1'); // 1 second

如果您使用curl> = 7.16.2和PHP> = 5.2.3,则 CURLOPT_CONNECTTIMEOUT_MS

答案 1 :(得分:2)

使用curl_getinfo获取cURL响应代码或内容长度并对其进行检查。

$HttpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

答案 2 :(得分:2)

也许使用一种关于Twitter是否上升或下降的缓存。在数据库或服务器端文件中记录来自api的无效响应。一旦连续获得两个/三个/一些其他无效响应,请禁用对api的所有请求x个时间。

在x个时间后,尝试请求,如果它仍然按下,则再次禁用x分钟。

如果您的服务器可以运行CRON作业,请考虑制作一个脚本,每隔几分钟检查一次有效响应的api。如果发现它已关闭,请禁用请求,直到它恢复为止。至少在这种情况下,服务器将进行测试,用户不必是豚鼠。