我有一個爲用戶提供需要完成的當前任務列表的項目。任何用戶都可以完成任何任務,以確保只有一個用戶正在處理某項任務,而我需要能夠「鎖定」它。我爲此使用了SignalR,因此用戶請求鎖定任務,並且如果它們成功(即,如果沒有其他人鎖定它),則他們將能夠訪問他們需要的更多信息。ASP.NET MVC 3內存數據存儲
我的問題是如何存儲鎖定任務的列表。最初的計劃只是在Task表中添加一個額外的位字段'IsLocked',並在用戶請求鎖定和任務解鎖時更新此字段。然而,我們有大約300個併發用戶,而一個任務只需要大約3-4分鐘,這意味着數據庫上的大量額外的和微小的查詢。因此,我們想知道內存中的存儲,只需將一個任務標識列表存儲在'lockedTasks'列表中。
我曾考慮過使用緩存,但我不確定最佳的方法來做到這一點,或者即使存在更好的替代方法。如果有人在這則任何經驗的一些建議將是巨大的感謝
BTW:計數爲3到4分鐘之間的300個查詢,而不能一個單一的查詢,他們必須更多,'GET_USER','GET_TASK_DETAILS'等...... :)但如果它**正確**設置,除了需要改進已經很好的工作,我沒有看到任何問題;) – balexandre
不,我意識到單獨並不是一個巨大的數額,但所有這些額外的電話是額外的負載,應用程序已經在做的頂部。我不想給數據庫增加額外的負擔,如果我不需要 –
我同意@MystereMan。你不是過早優化嗎? – JefClaes