我有一个为用户提供需要完成的当前任务列表的项目。任何用户都可以完成任何任务,以确保只有一个用户正在处理某项任务,而我需要能够“锁定”它。我为此使用了SignalR,因此用户请求锁定任务,并且如果它们成功(即,如果没有其他人锁定它),则他们将能够访问他们需要的更多信息。ASP.NET MVC 3内存数据存储
我的问题是如何存储锁定任务的列表。最初的计划只是在Task表中添加一个额外的位字段'IsLocked',并在用户请求锁定和任务解锁时更新此字段。然而,我们有大约300个并发用户,而一个任务只需要大约3-4分钟,这意味着数据库上的大量额外的和微小的查询。因此,我们想知道内存中的存储,只需将一个任务标识列表存储在'lockedTasks'列表中。
我曾考虑过使用缓存,但我不确定最佳的方法来做到这一点,或者即使存在更好的替代方法。如果有人在这则任何经验的一些建议将是巨大的感谢
BTW:计数为3到4分钟之间的300个查询,而不能一个单一的查询,他们必须更多,'GET_USER','GET_TASK_DETAILS'等...... :)但如果它**正确**设置,除了需要改进已经很好的工作,我没有看到任何问题;) – balexandre
不,我意识到单独并不是一个巨大的数额,但所有这些额外的电话是额外的负载,应用程序已经在做的顶部。我不想给数据库增加额外的负担,如果我不需要 –
我同意@MystereMan。你不是过早优化吗? – JefClaes