【发布时间】:2011-06-22 20:57:27
【问题描述】:
我的网站中有一个自定义数据服务,它应该每 10 分钟刷新一次数据,而不会给用户带来任何停机时间。 (asp.net mvc3, mssql 2008, c#)
目前它每 10 分钟刷新一次数据并更新我的数据库 (mssql) 没问题。但问题是,我不想为每个用户请求从数据库中读取数据,而是想在刷新数据后立即将其保存到 XML 文件中,这样用户就可以在没有任何额外的数据库连接或进程的情况下获取它。
因此,将有一个进程重新收集数据并写入 XML,同时大量用户每秒都会请求该 XML。
由于我对文件写入/读取的东西不太了解,我不确定是否应该在写入文件之前锁定文件,因为其他进程可能正在读取它。或者也许没关系,因为只有一个进程正在写入,而其他进程读取/请求它不会产生任何问题?也不确定XDocument的Save功能在写入之前是否已经锁定。
所以,总而言之;当任何其他进程可能正在读取/请求该文件时,如何安全地将我的 XDocument 对象保存到 xml 文件中?
或者我应该只从 Sql 中读取数据(不管每个用户的处理时间和延迟)并返回 XDocument 对象,我猜这会更容易吗?
提前致谢!
【问题讨论】: