2011-02-05 37 views
2

在我的网站中,我有一个数据库密集型页面,我缓存了5分钟。但是,当缓存过期并且页面必须新鲜渲染时,性能仍会受到影响。我在想,为什么不在后台进程(如workling)中一次5分钟计算页面并将其存储在缓存中,并且每次都要从缓存中提供用户请求。结果没有用户必须等待这个页面被渲染。如何将数据库密集型页面从rails中的后台进程存储到缓存中

有没有一种有效的方法来做到这一点? 非常感谢任何帮助。

感谢,

回答

1

我会建议只是让你的Web服务器的呼叫从您的背景作业或cron作业的页面。然后你让整个Rails堆栈处理这个调用。您可以创建一个cron作业要做到这一点,每4-5分钟,一个参数传递到页面把它强制缓存刷新,例如:然后

 
complex/page?force=true 

你的控制器/动作/模型将检查该这个参数的存在。如果存在强制,页面将不使用缓存版本,而是重新创建缓存。

+0

会有帮助,如果你也可以回答这个问题。 http://stackoverflow.com/questions/5409824/how-to-write-a-partial-into-a-cache-from-a-back-ground-process-and-read-the-parti – anusuya 2011-03-23 18:23:15

相关问题