设置是这样的:
每当我的网站发生错误时,都会在向管理员发送电子邮件时显示错误站点。
该网站显示了大量通过 AJAX 和 XML 每 15 秒自动更新的实时统计数据。但无论有多少用户,统计数据仅每 15 秒计算一次。这是由隐藏在 MSSQL 数据库中的时间戳完成的:
- 网站检查时间戳是否超过 14 秒
- 如果是,则更新时间戳并运行统计信息的计算并将它们保存到 XML
- 最后循环遍历 XML 并向用户显示请求的统计信息
如果时间戳不超过 15 秒,则跳过第二步。
现在我的问题是,如果 2 个用户同时发出时间戳请求,那么系统在两个用户都尝试更新 XML 文档之前没有时间更新时间戳,导致其中一个用户失败错误信息:
msxml3.dll (0x80070020) The process cannot access the file because it is being used by another process. /file.asp, line 310
是否可以在尝试保存 XML 文档之前检查是否正在使用该进程?或者可能忽略这种明显的错误?