我想限制在特定时间范围内生成页面的次数,但是不确定如何解决该问题。
以前,我已经通过安排要生成的页面并保存在cron作业中解决了类似的问题,但是这不允许我动态地执行此操作。
这是场景:
我有n
个用户创建的房间。我想构建一个JSON API,以允许用户访问房间信息以在自己的页面上使用。但是,为每个请求生成新的JSON结果将效率极低,并给数据库服务器带来安全风险。我想限制它,以便在x
时间内的所有请求都使用相同的JSON结果,而不是每次都使用新结果。
最佳答案
可以像这样完成一个简单的缓存系统
if (!file_exists($cacheFile) || filemtime($cacheFile) - time() > $cacheLifetime){
//generate json and save to $cacheFile
}
header("Content-Type: application/json");
header("Content-Length: ".filesize($cacheFile));
readfile($cacheFile);