專案需求:
資料遷移程序開始執行後,啟動定時任務每隔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...