3

我正在建立一个网站,以允许用户创建由多个任务组成的时间表。计划和任务信息存储在数据库中。

创建计划时,用户可以在最终保存计划之前添加、编辑或删除任意数量的任务。这些更改将持久保存到数据库中,以便用户可以在以后恢复编辑(如果他们的会话意外结束或被中断)。

每次收到更新任务的请求时,网站都会从我的数据访问层调用适当的方法,然后从数据库中重新请求整个计划数据对象以显示给用户。

当只编辑一个任务时,这似乎有点矫枉过正。我想在 HttpContext.Session 中缓存计划对象及其任务列表,并且只更新正在更改的单个任务(或更改时的计划对象)。

只要我在确认编辑操作成功时才​​更新我的缓存对象,我的两个版本不同步有什么危险吗?

4

2 回答 2

0

如果会话被重置,这可能是由于更新 web.config、修改 dll,甚至 IIS 自动应用程序池回收等原因导致的,都会导致您的会话被清除。如果您有多个 Web 服务器,您将不得不担心跨多个 Web 服务器和数据库中的一个同步会话。就我个人而言,我尽量不在会话中存储任何可以避免的东西。

于 2013-02-18T23:54:47.670 回答
0

我的两个版本不同步有什么危险吗

只要您在成功编辑后从服务器拉下新状态并更新缓存,那么应该没有问题。

要记住的一件事是,如果您要允许协作编辑,则必须引入轮询以确保您的本地副本不会过时。不过,从你的描述来看,可能性不大。

于 2013-02-18T23:57:19.567 回答