我编写了一个脚本,使用cURL提取当前最热门的Twitter趋势,并且它在本地100%的时间工作,但是当我将它FTP到我的中等服务器时,它似乎有时只能工作。这是由Twitter造成的吗? MEDIATEMPLE?我的代码中有些错误?
编辑:如何在平面文件中缓存内容?
答案 0 :(得分:1)
如果代码有时表明代码不是问题,那么潜在的责任有两个逻辑区域:
1)Web服务器加载
这可能是你的服务器陷入困境。如果服务器(不仅仅是您的站点 - 如果您在共享主机上考虑这一点)负载很重,那么可能需要您的服务器太长时间才能完成卷曲请求。使用以下方法来对抗此尝试并增加请求的超时时间:
CURLOPT_CONNECTTIMEOUT
2)推特率限制
Twitter限制您每小时可以从一个授权帐户进行的API调用次数(我相信这个数字大约是100的 - 请查看他们的API文档)如果您达到此限制,您将被拒绝进一步调用,直到1小时周年第一个电话。要解决此问题,要么cron作业以设定的间隔运行curl并将结果缓存在文本文件或数据库中,要么存储每个请求的时间,并使用IF仅每2或3分钟允许一个请求,缓存结果并从缓存中提取结果。
每次页面加载时调用twitter API都会浪费资源,带宽并减少页面加载时间。