【发布时间】:2008-09-18 15:28:21
【问题描述】:
在 asp.net Web 应用程序中,我想写入文件。这个函数会先从数据库中获取数据,然后写出平面文件。
我能做些什么来确保只发生 1 次写入,并且一旦发生写入,可能想要写入文件的其他线程在写入发生后就不会发生。
我希望仅在 15 分钟内未完成的情况下完成此写入。
我知道有一个 lock 关键字,所以我应该把所有东西都包在一个 lock 中,然后检查它是否在 15 分钟或更长时间内更新,反之亦然?
更新
工作流程:
由于这是一个 Web 应用程序,因此多个实例将是查看特定网页的人。我可以使用内置缓存系统,但是如果 asp.net 回收,重建缓存会很昂贵,所以我只想将它写到一个平面文件中。我的另一个选择是创建一个 Windows 服务,但我需要更多的工作来管理。
【问题讨论】:
-
是否所有的写入都发生在单个应用程序的单个实例中?或者应用程序的多个实例会同时尝试写入,还是不同的应用程序会同时尝试写入?