Rails有效地维护目录列表

时间:2014-02-28 20:51:18

标签: ruby-on-rails

我有一个非常简单的PHP站点,它基本上提供了一个文件夹列表,每个文件夹都有几个按钮。目前,由于没有太多工作要做,它会在每次刷新页面时读取文件夹内容。列表本身不存储在任何地方。

现在我想为每个文件夹存储更多信息(用户访问过它的时间,等等)。我正在学习Rails并希望这样做,所以我的问题是:

如何有效地将文件夹读入Rails DB,而无需每次都刷新它们。

我不是要求别人为我写字,只是给我一些关于我应该看的路径的想法。

我想要避免的是必须扫描文件夹并将每个目录与数据库进行比较以查看它是否存在,因为随着文件夹的增长,这可能变得相当昂贵。或者这真的是最好的方式吗?

也许设置一个cron作业来扫描文件夹并将它们添加到与Web服务器分开的DB中?

TL:DR - 需要有关在Rails DB中维护文件夹列表的有效方法的帮助。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

根据您使用的操作系统,您可以在目录上使用修改日期或创建日期来确定是否应检查数据库是否存在。保存上次检查的日期/时间,仅考虑自该日期/时间以来创建或修改的目录。

另一种选择是让守护程序运行“监视”目录树,并在任何时候更改,更新数据库。这可以像通过sha-1哈希运行ls -l以获得一种签名一样简单,并且只要签名发生更改,就会运行完整的目录树到数据库同步。

要在Rails中编写守护进程,请考虑daemon-rails gem。