我正在建立一个网站,允许用户创建一个由几个任务组成的时间表。时间表和任务信息存储在数据库中。
创建日程表时,用户可以在最终保存日程表之前添加、编辑或删除任意数量的任务。这些更改将保存到数据库中,以便用户可以在以后继续编辑(如果他们的会话意外结束或中断)。
每次请求更新任务时,网站都会从我的数据访问层调用适当的方法,然后从数据库重新请求整个计划数据对象,以显示给用户。
当只有一个任务正在被编辑时,这似乎有点过头了。我希望在HttpContext.Session中缓存schedule对象及其任务列表,并且只更新正在更改的单个任务(或更改后的schedule对象)。
如果我只在确认编辑操作成功时才更新缓存对象,那么我的两个版本不同步会有什么危险吗?
发布于 2013-02-19 07:54:48
如果会话被重置,这可能是由诸如更新web.config、修改dlls、甚至IIS自动回收应用程序池之类的事情导致的,将导致您的会话被清除。如果您有多个web服务器,您将不得不担心跨多个web服务器和数据库中的一个同步会话。就我个人而言,我尽量不在会话中存储任何可以避免的东西。
发布于 2013-02-19 07:57:20
我的两个版本不同步有什么危险吗
只要在成功编辑和更新缓存后从服务器中拉出新状态,就不会有任何问题。
要记住的一件事是,如果你打算允许协作编辑,你就必须引入轮询,以确保你的本地副本不会过期。然而,从你的描述来看,这听起来不太可能。
https://stackoverflow.com/questions/14947388
复制相似问题