问题描述
我有一个函数,该函数从API获取值,然后在缓存中更新。
所有用户都使用此功能,但我不想更新该值以多次缓存。如何避免多次写入?如何为多个用户锁定(如果可能)?如果用户A
锁定了
用户B
不应被阻止,并继续更新该值并获得自己的锁。对A
的所有请求仅应更新到缓存一次。
Void foo(Guid userId){
bool isFound = GetfromCache(userId);
if(!isFound)
var val = GetValueFromAPI();
UpdateInsideCache(val,userId); // Here we Could have multiple requests updating the same entry,since it is high scale system ~ Assume 100 Million request per day.
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)