我有一个 Rails 应用程序,每次执行搜索时都会从 .yml 文件中读取。(这是一个全文搜索应用程序。).yml 文件告诉应用程序它应该向哪个 url 发出搜索请求,因为不同版本的搜索索引驻留在不同的服务器上,我偶尔会在索引之间切换。
我有一个应用程序的管理部分,允许我重写上述 .yml 文件,以便我可以添加新的搜索 url 或删除不需要的。虽然我可以手动编辑服务器上的文件,但我更希望能够在我的站点管理部分中编辑它,这样当我无权访问服务器时,我仍然可以进行任何必要的更改。
对我的应用实际使用的文件进行编辑的最佳做法是什么?(我想这也适用于,比如说,一个能够在部署后重写自己的帮助文件的应用程序。)
当另一个连接到我的站点的用户想要执行搜索时,我可能正在重写此文件,这是否是一个问题?如果我正在进行写操作,我可以让他们的搜索失败吗?我应该最初将新的 .yml 文件写入临时文件,然后再替换原始的 .yml 文件吗?我知道写操作非常快,但我只是想看看其他人的想法。
更新:感谢大家的回复!虽然我发现我最好使用某种缓存而不是在每个请求上读取文件,但它有助于找出实际执行文件重写的最佳方法是什么,因为我特别希望重新- 在这种特定情况下每次都阅读它。