Twitter API在本地工作,但在远程服务器上不稳定


Twitter API works locally, but is spotty on remote server

我写了一个脚本,使用cURL提取当前的顶级Twitter趋势,它在本地100%工作,但是当我将它FTP到我的meditemple服务器时,它似乎只在有时工作。这是Twitter造成的吗?Mediatemple吗?我的代码有错误吗?

编辑:如何在平面文件中缓存内容?

如果代码有时工作,这表明它不是你的代码的问题,所以有两个逻辑领域的潜在责任:

1) Web Server Load

这可能是你的服务器被卡住了。如果服务器(不只是你的站点——如果你的主机是共享的)负载很重,那么你的服务器可能会花很长时间来完成curl请求。要解决这个问题,请尝试使用以下命令增加请求的超时时间:

CURLOPT_CONNECTTIMEOUT

2)推特速率限制

Twitter限制了您可以从一个授权帐户每小时拨打的API呼叫数量(我相信这个数字大约是100 -检查他们的API文档)如果您达到了这个限制,您将被拒绝进一步的呼叫,直到第一次呼叫的1小时周年纪念日。为了解决这个问题,可以使用cron作业以设置的间隔运行curl并将结果缓存到文本文件或数据库中,或者存储每个请求的时间并使用IF每2或3分钟只允许一个请求,缓存结果并从缓存中取出结果。

每次加载页面时调用twitter API是对资源和带宽的浪费,并且可以减少页面加载时间。