我有一个项目,它为用户提供需要完成的当前任务列表。任何用户都可以完成任何任务,因此为了确保一次只有一个用户在处理一项任务,我需要能够“锁定”它。我为此使用 SignalR,因此用户请求锁定任务,如果他们成功(即,如果没有其他人锁定它),那么他们将能够访问他们需要的更多信息。
我的问题是如何存储锁定任务列表。最初的计划只是在任务表中添加一个额外的位字段“IsLocked”,并在用户请求锁定和任务解锁时更新它。然而,我们有大约 300 个并发用户,一个任务只需要大约 3-4 分钟,这意味着对数据库进行大量额外的和微小的查询。因此,我们想知道内存存储,只是将任务 ID 列表存储在“lockedTasks”列表中。
我曾考虑使用缓存,但不确定最好的方法,或者即使存在更好的替代方案。如果有人在这方面有任何经验,那么一些建议将非常感谢