【问题标题】:Share and update the static collection across the web api requests (user sessions)跨 Web api 请求(用户会话)共享和更新静态集合
【发布时间】:2017-01-09 10:53:06
【问题描述】:

我需要将每个用户 requestid 存储在静态集合对象中。在每个下一个请求需要检查是否存在相同的用户请求,然后使用它处理一些特定的任务。

因此,为了实现这一点,我正在考虑保留 static list 对象。但与网络请求一样,由于网络中的静态对象,它不会给我正确的值或正确更新集合。

您能否在这里分享一下理想的方法是什么,我应该使用 or 方式来处理 web 中的静态集合对象(在更新集合或检索集合时)。

【问题讨论】:

  • 理想的方法是使用数据库。如果您的 API 出现故障,数据仍将保留在数据库中。
  • 如果需要保留在内存中,如何处理静态集合以在 web api 请求会话中添加/更新。
  • 好的,我会通过实现并发字典来检查。你认为,Redis 是一个不错的选择吗?基本上,只需要存储在服务器端内存中。
  • @Peter Bons 它对我有用,您可以添加为答案。

标签: c# multithreading asp.net-web-api static asp.net-web-api2


【解决方案1】:

如果您想自己构建它,那么至少使用并发集合:http://msdn.microsoft.com/en-us/library/dd997373(v=vs.110).aspx,因为您将从多个线程访问该集合。

否则我建议使用 MemoryCache,一种线程安全的内置机制。见http://msdn.microsoft.com/en-us/library/ff477235.aspx

【讨论】:

  • 并发集合对我有用。实现线程安全操作的快速方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多