比對資料庫資料和call總部webservice的回傳值是否有異,
若有則更新資料庫資料。
原本以為定時比對利用timer跑個迴圈比對就沒事了,
結果更新完資料庫資料後,
發現台灣local這邊的網站顯示資料卻沒有更新!!!
Orz....
細查發現公司webform應用程式顯示資料時,
是先看伺服器記憶體中(global.asax記錄了定期更新的資料及最後updatedTime)有無暫存資料,
若有就直接讀取不再浪費連線效能,
因此我的常駐程式勢必得想辦法重新啟動伺服器記憶體或修改global.asax的最後updatedTime,
想了老半天才發現原來方法沒那麼複雜........想太多.........
在公司webform應用程式中寫一段webserive用來更新global.asax的updatedTime
(公司是設定一個月前的舊資料就連線資料庫撈資料,再將最新資料儲存伺服器記憶體內),
然後我的常駐winform呼叫此webservice修改updatedTime就可以達成我想要的目的,
就這麼簡單,
程式碼三行完成需求......但這三行卻浪費我想一天,果然太嫩...。
[WebMethod(EnableSession = true)] public void changeUpdateTime() { HttpContext.Current.Application.Lock(); Global.dictionaryDom.lastUpdateTime = DateTime.Now.AddYears(-5); HttpContext.Current.Application.UnLock(); }
沒有留言:
張貼留言