【发布时间】:2017-01-09 10:53:06
【问题描述】:
我需要将每个用户 requestid 存储在静态集合对象中。在每个下一个请求需要检查是否存在相同的用户请求,然后使用它处理一些特定的任务。
因此,为了实现这一点,我正在考虑保留 static list 对象。但与网络请求一样,由于网络中的静态对象,它不会给我正确的值或正确更新集合。
您能否在这里分享一下理想的方法是什么,我应该使用 or 方式来处理 web 中的静态集合对象(在更新集合或检索集合时)。
【问题讨论】:
-
理想的方法是使用数据库。如果您的 API 出现故障,数据仍将保留在数据库中。
-
如果需要保留在内存中,如何处理静态集合以在 web api 请求会话中添加/更新。
-
至少使用一个并发集合:msdn.microsoft.com/en-us/library/dd997373(v=vs.110).aspx。也许使用
MemoryCachemsdn.microsoft.com/en-us/library/ff477235.aspx -
好的,我会通过实现并发字典来检查。你认为,Redis 是一个不错的选择吗?基本上,只需要存储在服务器端内存中。
-
@Peter Bons 它对我有用,您可以添加为答案。
标签: c# multithreading asp.net-web-api static asp.net-web-api2