问题描述
亲爱的 StackOverflow 社区,
对于我的一个项目,我需要将(临时)数据存储在数据库以外的其他地方。其实它有点复杂。我在 NopCommerce 中有一个结帐页面,用户可以在其中选择交货时间甚至地点,例如取货。此数据必须临时存储,直到用户付款。只有这样我才会请求数据并存储在数据库中。以便稍后我可以检索数据并显示在我的仪表板中,以便我知道计划何时运送包裹。
要求:
- 续航时间:12-24 小时。
- 存储为用户特定数据。
- 必须保护好几个会话的数据。取决于用户。例如。如果用户选择了交货时间,但在付款前想查看其他地方。这些数据必须存储在所有这些会话中。
- 如果可能,服务器端。
我有很多选择跟随微软: Session and state management in ASP.NET Core
现在我尝试使用“MemoryCacheEntryOptions”将数据存储在内存中(缓存数据)。问题是它的应用范围很广。并且很难在数百个用户的情况下维护。
其他选项是'会话状态'。 问题是这些数据只持续一个会话。我需要保存数据至少 12 到 24 小时。
然后我们有'临时数据'。这似乎是一个很有前途的选择。它很棒,因为它一直保存到被使用/阅读。您甚至可以使用“Peek”和“Keep”方法在偷看时保留数据。问题:它需要一个控制器。而请求数据是一个不需要Controller的回调方法。
'查询字符串' 那么它不是很多吗?这可能不是用户关键数据,但似乎查询字符串不是我要找的。p>
'隐藏字段' 也不太适合。因此,它不是表单数据。
'HttpContext.Items' 显然不适合。数据仅为单个请求存储。
'缓存'难以维护用户特定数据的方式。
所以我的问题是。如果可能的话,我如何将所有这些数据临时保存在服务器端至少一天,同时有数百个用户。并稍后在回调中请求数据,将其存储在数据库中,直到订单发货。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)