【发布时间】:2018-03-06 11:19:14
【问题描述】:
以前我使用 Microsoft 状态服务来维护我的机器人中的用户状态。现在微软已经停止支持状态服务,我编写了一个静态对象来存储用户数据,如下所示。只是想知道这是维护用户状态的正确方法,因为可能同时有大约 8000 个用户正在使用该应用程序。我只是担心它是否会导致一些并发。请建议是否有更好的方法来维护机器人框架中的用户状态
private static object objectLock = new object();
public void SetBotCache(T CaceData, string userID)
{
_sessionData.AddOrUpdate(userID, CaceData, (key, oldValue) => CaceData);
}
public T GetBotCache(string userID)
{
lock (objectLock)
{
if (_sessionData.Count > 0)
{
return _sessionData.First(a => a.Key == userID).Value;
}
else
{
return default(T);
}
}
}
public void RemoveCache(string userID)
{
lock (objectLock)
{
T res;
_sessionData.TryRemove(userID, out res);
}
}
【问题讨论】:
标签: c# state botframework azure-language-understanding