【发布时间】:2023-03-03 17:38:02
【问题描述】:
我正在使用 ASP.NET Core 3.1。我正在编写一个控制器来处理 webhook,发送请求的系统可能会多次发送相同的请求。每个请求都有一个通知 ID 标头,重复请求的标头相同,因此很容易将它们过滤掉。
在正确线程安全的 ASP.NET Core 中处理此问题的最佳方法是什么?现在我将List<string> 存储在MemoryCache 中,它可以工作,但我担心线程安全。我不知道有一个线程安全的类似列表的集合,它提供类似.Contains() 的东西来快速检查集合中是否存在某些东西。
处理这种情况的最佳方法是什么?
【问题讨论】:
-
ConcurrentDictionary
将通知 ID 作为密钥对您有用吗? -
这种方法无法扩展,但您要查找的集合是 ConcurentDictionary
-
@PavelShastov 我需要对
MemoryCache做一些特别的事情吗? -
不,MemoryCache 是线程安全的
标签: c# asp.net-core caching .net-core