quartz應用之一 建立 關閉定時任務

2021-08-26 00:06:39 字數 1001 閱讀 3033

專案需求:

資料遷移程序開始執行後,啟動定時任務每隔30秒計算遷移進度,並將進度入庫,當遷移完成後,關閉任務。

遷移時根據任務單來執行,任務單中由多種基本業務資料組成。

實現思路:

1.遷移開始前,啟動監視進度的執行緒,每30秒重新執行,如果資料遷移完畢,則呼叫關閉執行緒介面。

2.基本業務資料遷移完成後,遷移狀態及進度入庫。

3.任務單執行完畢後,呼叫關閉執行緒介面。

定時任務採用執行緒方式實現,執行緒監視遷移進度,和遷移程序同步執行。不採用自己編寫執行緒的方式,是因為系統中很多功能都採用了執行緒的方式實現,多執行緒程式設計還是建議採用應用廣泛的執行緒池來統一管理,否則容易出現多執行緒的死鎖、失控等問題,所以我採用了quartz框架。

示例**:

public class moveprocessservice extends basemgr catch(exception e)	}	

/*** job名稱和執行緒組及觸發器名稱需要動態處理

* @param caseid

* @param basetypeidlist

*/public void watchmoveprocess(string caseid,list basetypeidlist)catch (exception e) }

/*** 關閉個例進度監視

* @param caseid

*/public void shutdownscheduler(string caseid)

}}catch(exception e) }

}

job:

小類遷移實際進度入庫

porcessmonitordao.updatebasetypeprocess(caseid,basetypeid,process);

public class watchmoveprocessjob implements job

}}

} }

棧的應用之一 括號匹配

括號匹配所用演算法 核心 遍歷整個字串,若遇到了左括號,將其下標進棧 若遇到了右括號,則將棧頂元素出棧 根據後進先出,棧頂元素即為與當前括號匹配的括號 若棧空,則無括號與當前括號匹配。當遍歷一遍後,若棧中還有元素,則說明左括號多,無右括號與其匹配。include include includeusi...

Django學習之一 建立應用

使用虛擬環境建立django應用 pip install virtualenv virtualenv my env source my env bin activate linux 環境下 my env scripts activate.bat windows 環境下 my env d work c...

iphone資料庫簡單應用之一

按著步驟一步一步來 定義資料庫的名字變數 nsstring databasename database.sql 定義資料庫的路徑 nsstring databasepath nsarray paths nssearchpathfordirectoriesindomains nsdocumentdir...