在做專案時,遇到同步
erp資料的問題,客戶要求是:
程式中,設定乙個開始時間,再設定乙個時間間隔,讓程式每隔一段時間匯出銷售記錄,這個開始時間和時間間隔可以手動修改設定。
這問題糾纏了我好幾天,總算解決了,寫文件記錄:
首先,要讓程式定時執行任務,可以使用
asp.net
中的timer
計時,不過這個定時不是很準,如果用它,還會遇到其他的問題,後面會提到。第二種方法是,使用乙個叫做:
quartz.net
開源專案,專門用來排程定時作業。
這次專案中,我用到的就是
quartz.net
元件,用他來定時排程作業,是很方便,不過問題也來了:當程式執行一段時間後,發現自動任務停止了。在網上查了查資料,說法不一。
後來多方查資料以及自己試驗證明:原來是**應用程式在沒有請求時,過一定的時間就會停止應用程式,具體點來說,就是**中的最後乙個
session
結束時,**應用程式就會結束。當然就會觸發
事件。隨之定時任務也會停掉。
現在的問題就是:如何讓**都有請求?如何讓
事件不會發生?
這個問題在網上也有很多種說法,比如有人建議:在
中用程式模擬請求**,重新開始
事件,也給出了程式**:
這裡有詳細說明。不過我照博主的做法,並沒有實現我想要的功能。不過他是用來處理
iis應用程式池**的問題的。孟子e
章說:新建乙個獨立的執行緒來排程執行的任務,個人認為比較麻煩,沒採用這種方式。
最後,發現了乙個簡單的處理方式,利用
asp.net
的快取超時技術。下面具體來闡明,
基本思路:
在應用程式啟動時,用程式快取乙個**中的頁面。在快取網頁時,設定好快取過期時間,以及快取過期時觸發的**事件,快取過期時觸發的**事件這是關鍵。在快取過期時用程式模擬請求**頁面,再次快取,迴圈之…
**說明:(全在
global.asax
裡)這樣,**應用程式就可以像執行windows服務一樣,在後台默默的執行了,沒看明白,可以參見這裡:
附:quartz.net
詳細教程參見:
①官方教程:
;②中文翻譯:
阻止事件冒泡,阻止預設事件
阻止事件冒泡 html 冒泡事件測試 js table click function td click function span click function e 如果js中不加 e.stoppropagation 那輸出結果就依次為span td table。這就叫事件冒泡。就是從下到上,從裡到...
阻止預設行為 阻止右鍵選單和阻止超連結預設行為
1.阻止右鍵選單 官方的右鍵選單 document.oncontextmenu function 實現自定義的右鍵選單,滑鼠按下 按下的是右鍵,在右鍵這個位置顯示選單 如果是按下別的選單,選單消失 var omenu document.getelementbyid menu document onm...
JS阻止事件冒泡,阻止預設事件
1 event.stoppropagation 阻止冒泡事件,不讓事件向documen上蔓延,但是預設事件任然會執行,當你掉用這個方法的時候,如果點選乙個鏈結,這個鏈結仍然會被開啟 2 event.preventdefault 阻止預設事件,呼叫此方法是,鏈結不會被開啟,但是會發生冒泡,冒泡會傳遞到...