我有一個asp.net web應用程序。我將一些從數據庫讀取的數據添加到HttpContext.Cache中,但我希望每15分鐘從數據庫中重新讀取數據並將其設置在緩存中。我該怎麼做呢?我將緩存中的條目添加到15分鐘後過期。在向緩存對象添加數據時,我查看了'CacheItemRemovedCallback',但在此回調中,HttpContext沒有初始化,它回滾爲空,因此我無法將數據添加到緩存中。有沒有一種機制可以實現這一目標?在asp.net web應用程序中每隔幾分鐘刷新一次緩存
1
A
回答
1
爲什麼不設置一個時間事件以像global.asax中應用程序啓動事件那樣的所需間隔重新填充緩存。這不會延誤任何用戶的用戶界面。
protected void Application_Start()
{
Timer customTimer = new Timer();
customTimer.Elapsed += new ElapsedEventHandler(YourHandler.YourRepopulationEvent);
customTimer.Interval = YourInterval;
customTimer.Start();
}
+1
感謝您的回覆。我從來沒有使用Application_Start事件,因爲你的帖子,我查了一下,學到了一些新東西。對於我上面的場景,我將使用HttpRuntime.Cache而不是HttpContext.Current.Cache進行回調。我知道緩存將不會準備好,直到頁面的第一個請求。我想我會和它一起生活。 – 2013-05-07 19:27:35
1
可能你可以在高速緩存中使用回調。請參閱下面的鏈接 Callback when cache expires in asp.net
相關問題
- 1. 每隔幾分鐘更新一次QWidget
- 2. 每隔幾分鐘刷新一次的div - 軌道
- 3. 每分鐘刷新一次
- 4. 每隔5分鐘刷新一次en asp.net mvc
- 5. 刷新應用程序上下文每隔2分鐘後
- 6. 讓HttpContext.Current.Cache每分鐘刷新一次緩存
- 7. 每15分鐘刷新Azure Redis緩存
- 8. 爲所有用戶緩存一次對象,每30分鐘刷新一次
- 9. Django緩存,天氣站點每5分鐘自動刷新一次緩存
- 10. 每隔幾分鐘重新啓動一個程序的腳本
- 11. Django - 每隔幾分鐘更新一次模型
- 12. 每兩分鐘刷新一次listview android
- 13. 在asp.net web應用程序中緩存
- 14. 創建每隔5分鐘刷新一次的物化視圖
- 15. Node.js無法每隔三分鐘刷新一次靜態文件
- 16. 如何在rails中每隔幾分鐘更改一次變量?
- 17. 每隔20分鐘阻塞一次端口幾秒鐘
- 18. 如何在java web應用程序中每隔30分鐘調用一個類
- 19. ASP.NET應用程序每隔幾分鐘就會損壞視圖狀態
- 20. 將數據庫緩存到每5分鐘刷新一次的數組中
- 21. WebBrowser.Navigate刷新每隔X分鐘
- 22. Android Volley,無效緩存並每隔(x)分鐘發出一次新請求
- 23. iPad主屏幕應用程序每刷新一次刷新
- 24. 在Windows RT應用程序中每隔n秒刷新一次網頁圖片
- 25. 用jquery每秒鐘刷新一次url
- 26. 在雲中每隔幾分鐘運行一次Java應用程序的最佳方式?
- 27. 用mysql查詢每隔幾秒刷新一次文本框?
- 28. 如何每隔幾分鐘運行一次cron作業每隔幾小時運行一次
- 29. VB6應用:WebBrowser.Navigate刷新每3分鐘
- 30. Angular2刷新API每x分鐘觀察一次響應變化
你可以在加載頁面時檢查緩存鍵是空還是空。那麼,如果是空的,重新填充?這也可以防止應用程序池重新啓動時出現問題。 – 2013-05-07 17:13:47
我已經這樣做了,但需要設置的數據在較大的一面稍微有點,需要幾秒鐘,我試圖避免用戶頁面加載的延遲。 – 2013-05-07 17:18:30
當'CacheItemRemovedCallback'被調用時,您只需要'System.Web.Caching.Cache'來創建緩存。在創建緩存之前,您是否需要從'HttpContext'中取回某些內容? – Win 2013-05-07 18:27:53