在我的网站上,我有一个数据库密集型页面,我将其缓存5分钟。但是当缓存过期并且必须重新呈现页面时,性能仍会受到影响。我在想为什么不在5分钟内从后台进程(如工作)计算一次页面并将其存储在缓存中,并让用户请求每次都从缓存中提供。因此,没有用户必须等待呈现此页面。
有没有一种有效的方法呢? 非常感谢任何帮助。
谢谢,
答案 0 :(得分:1)
我建议您只需在后台作业或cron作业中调用您的网络服务器。然后让你的整个Rails堆栈处理这个调用。您可以创建一个cron作业,每4-5分钟执行一次,并将参数传递给页面以强制执行缓存刷新,例如:
complex/page?force=true
您的控制器/操作/模型将检查是否存在此参数。如果存在force,则页面将不使用缓存版本,而是重新创建缓存。