我有一个api方法,可以在应用程序启动时获取大量数据。 90%的数据与所有应用程序用户相关,另外10%需要通过用户ID及其环境和应用程序版本进行更改。 为避免每次用户连接时调用第一种方法并使启动速度变慢, 我补充说:AspNetCacheProfile属性。 但在这种情况下,我不能使用此方法的用户ID,环境和版本 因为它是第一个叫做方法的用户的数据。
所以, 我添加了新方法(第二个)并在其上面设置了AspNetCacheProfile属性 并从第一个方法调用此方法。 这样我可以缓存一般数据并更新每次调用的其他10%。
我只是想知道..它会起作用吗? 我不确定,因为第二种方法没有直接调用,它是从第一种方法调用的。
[WebGet(UriTemplate = "/GetData")]
public APIResponse GetData()
{
try
{
MyCachedResponse = GetMyCachedResponse();
foreach (var info in data.info)
{
if (Something)
{
// Update some specific values inside
}
}
AppState.CurrentResponse.Data = data;
}
return AppState.CurrentResponse;
}
[AspNetCacheProfile("OneMinuteCaching")]
private MyCachedResponse GetMyCachedResponse()
{
return new MyCachedResponse(categories);
}