我正在使用運行速度非常慢的API,因此我的應用程序正在受到相當大的性能影響。我已經設法優化了一些代碼並大大減少了加載時間,但我還想在所有會話中緩存一些數據,以最大限度地減少我必須創建的服務器點擊量。現在有一個API調用需要將近10秒的時間才能運行,並且數據很少發生變化(可能每幾週會發生一次)。我想要做的是緩存結果以及檢索時間,並且只在自上次調用後經過一段時間後才調用API,否則返回緩存的結果。目前我在嘗試此:嘗試全局緩存C#WebService中的數據,但遇到問題
[WebMethod]
public List<RegionList> getRegionLists() {
if (GlobalAppCache.RegionListsLastUpdate == DateTime.MinValue || GlobalAppCache.RegionListsLastUpdate.AddMinutes(15) > DateTime.Now)
{
List<RegionList> regionLists = new List<RegionList>();
// Do Some API Calls
GlobalAppCache.RegionListsLastUpdate = DateTime.Now;
GlobalAppCache.CachedRegionLists = regionLists;
return regionLists;
}
return GlobalAppCache.CachedRegionLists;
}
隨着GlobalAppCache class是:
public class GlobalAppCache {
public static DateTime RegionListsLastUpdate{get;set;}
public static List<RegionList> CachedRegionLists{get;set;}
}
緩存的這個方法似乎並沒有被工作(API調用是由每一個時間,緩存的結果永遠不會被返回),而且我也無法得到任何與Application []數組有關的任何工作。任何人都可以將我指向正確的方向嗎?如果我可以得到這個工作,我可以通過在此GlobalAppCache對象中緩存更多項目來提高性能。謝謝!
「這看起來沒有工作」是什麼意思? –
「這似乎沒有工作」嗯,好嗎? –
緩存結果的整個方法。爲了清晰起見,我將編輯原始帖子。 –