我遇到了一点腌菜。通常我可以通过一些广泛的谷歌搜索(到正确的SO线程)找到我的问题的解决方案,但不是这次。
我使用的API允许我通过cURL访问其数据,此API的请求数限制为每10分钟500个请求。如果反复超出此限制,您的API密钥将被暂停。
我的应用程序,用PHP编写,经常通过不同的页面发出请求 - 有时同时发出。我需要一个解决方案,确保我始终处于请求限制之下。我需要能够同时从所有脚本检查和更新每10分钟重置一次的变量。 甚至可以这样做吗?我该如何处理这个问题?
我没有要求源代码提供完美的解决方案,我只是想指出如何解决这个问题,或者它是否能够解决 - 这是什么?替代方法?
提前谢谢你。
答案 0 :(得分:1)
听起来像memcache
就是你想要的。它可以保存PHP对象或基类型等变量,并为它们提供过期日期。只需google获取PHP的memcached扩展,并查看此处:http://php.net/manual/en/class.memcache.php。
此外,它可以通过TCP访问,并具有一些故障转移功能。 AWS提供的服务与称为ElastiCache
答案 1 :(得分:1)
如果页面由不同的用户运行,我只能想到的是存储在表格中。
执行类似
的操作$datestring = substr(date("Y-m-d H:i"),0, -1);
以这种方式,你总是有相同的字符串分钟2016-11-07 17:00:00 - 2016-11-07 17:09:59。
然后使用此机制存储在表中:
"INSERT INTO table (datestring, count) VALUES ('$datestring', '1') ON DUPLICATE KEY UPDATE count = count + 1";
当然将日期字符串char(15)作为唯一键。
你用一个选择FROM来检查你的计数....比较你刚刚创建的日期字符串,你得到的所有行都没有,或者一行有一个计数值。
这是一个解决方案,当然有很多。