【发布时间】:2017-01-23 14:08:26
【问题描述】:
在一个 Web 应用程序中,该应用程序会触发来自不同用户的许多 ajax 请求以执行操作。其中一个请求会触发一些数据库更新。如果当前正在进行此操作,我想确保忽略此操作的其他会话请求。实现一个我可以锁定的静态变量是否安全,这样如果一个动作已经在进行中,其他请求可以忽略该动作,或者这只是一个糟糕的设计?
更新
在深入挖掘之后,我遇到了乐观并发。我正在使用 EF6,所以为了避免这种情况,听起来我需要做的就是使用 Concurrency Mode 来修复?
【问题讨论】:
-
为什么不“安全”?
-
你在这里问的真的很模糊。您希望其他请求“忽略”的这个“动作”是什么?当您不“忽略”该“动作”时,当前正在发生什么?请阅读How to Ask。
-
我没想到会这样。似乎总是在阅读以尝试在 Web 应用程序中避免静态。那么就没有问题了吗?
-
当您的应用安装在 2 个或更多服务器上时会发生什么?你想发生什么?
-
@HenkHolterman 现在这是一个好点。如果用户已经在执行某些数据库更新,我想避免这些更新。
标签: c# entity-framework model-view-controller