1. 目的:動態設定時間,觸發相應的任務
2. 系統架構為 struts + spring + hibernate
3. 實現步驟:
在頁面上設定時間;
將時間轉換為unix cron expression;
將轉換後的時間規則表示式記錄到資料庫中(也可以寫入xml檔案中,這裡是專案需要記錄入資料庫中);
從資料庫中得到相應的時間規則表示式;
更新您的任務觸發器的時間設定;
reschedule the job。; - )
4. 具體實現細節:
1) 在頁面上設定時間
根據具體的業務需求,設定時間規則,下面以某一專案為例,需要 按每月、每週、自定義分為三種規則。
1 < tr >
2 < th > 執行這個任務
3 < td style ="font-weight:bold;" >
4 < html:radio property ="everywhat" styleclass ="inputbordernone" value ="monthly" onclick ="changestatus(this.value)" > 每月
5 < html:radio property ="everywhat" styleclass ="inputbordernone" value ="weekly" onclick ="changestatus(this.value)" > 每週
6 < html:radio property ="everywhat" styleclass ="inputbordernone" value ="userdefined" onclick ="changestatus(this.value)" > 自定義
7 < html:hidden property ="jobname" value ="compare" />
8 9
10 每月則需要選擇該月的第幾個星期的星期幾
1 < tr style ="display:" id ="whichweek" >
2 < th > 選擇第幾個星期
3 < td style ="font-weight:bold;" >
4 < html:select property ="week" >
5 < html:option value ="1" > 一
6 < html:option value ="2" > 二
7 < html:option value ="3" > 三
8 < html:option value ="4" > 四
9 10 < html:select property ="dayofmonth" >
11 < html:option value ="1" > 星期日
12 < html:option value ="2" > 星期一
13 < html:option value ="3" > 星期二
14 < html:option value ="4" > 星期三
15 < html:option value ="5" > 星期四
16 < html:option value ="6" > 星期五
17 < html:option value ="7" > 星期六
18
19
20
21 每週則需要選擇星期幾
1 < tr style ="display:none" id ="whichday" >
2 < th > 選擇星期
3 < td style ="font-weight:bold;" >
4 < html:select property ="dayofweek" >
5 < html:option value ="1" > 星期日
6 < html:option value ="2" > 星期一
7 < html:option value ="3" > 星期二
8 < html:option value ="4" > 星期三
9 < html:option value ="5" > 星期四
10 < html:option value ="6" > 星期五
11 < html:option value ="7" > 星期六
12
13
14
15 自定義則選擇具體的日期,如 2007-1-10
三種規則都需要設定時間點
1 < tr >
2 < th > 起始時間
3 < td style ="font-weight:bold;" >
4 < html:select property ="timetype" styleid ="type" onchange ="changestatus2(this.value)" >
5 < html:option value ="am" > 上午
6 < html:option value ="pm" > 下午
7 8 < html:select property ="hour" styleid ="amhours" >
9 < html:option value ="1" > 1
10 < html:option value ="2" > 2
11 < html:option value ="3" > 3
12 < html:option value ="4" > 4
13 < html:option value ="5" > 5
14 < html:option value ="6" > 6
15 < html:option value ="7" > 7
16 < html:option value ="8" > 8
17 < html:option value ="9" > 9
18 < html:option value ="10" > 10
19 < html:option value ="11" > 11
20 < html:option value ="12" > 12
21
22 < html:select property ="hour" styleid ="pmhours" style ="display:none" >
23 < html:option value ="13" > 13
24 < html:option value ="14" > 14
25 < html:option value ="15" > 15
26 < html:option value ="16" > 16
27 < html:option value ="17" > 17
28 < html:option value ="18" > 18
29 < html:option value ="19" > 19
30 < html:option value ="20" > 20
31 < html:option value ="21" > 21
32 < html:option value ="22" > 22
33 < html:option value ="23" > 23
34 < html:option value ="0" > 0
35 點
36 < html:text property ="minute" name ="minute" style ="width:20px;" value ="0" onchange ="valtime(this.value)" /> 分
37 < html:text property ="second" name ="second" style ="width:20px;" value ="0" onchange ="valtime(this.value)" /> 秒(0-59之間的整數)
38
39
40 ok. 這樣我們的頁面設定就完成了。: - )
Spring Quartz如何動態配置時間
文章 網路 spring 中的xml配置如下 bean id comparejob class org.springframework.scheduling.quartz.methodinvokingjobdetailfactorybean property name targetobject re...
Spring Quartz如何動態配置時間(2)
書接上回,上回說到,武松武二郎斗殺西門慶,為大哥報了仇 啊,說串了,嘿嘿 不好意思 刪掉上面一行 上回說到,我們的設定頁面已經做好了,接下來就是將時間轉換為unix cron expression。2 將時間轉換為unix cron expression 需要actionform將頁面表單資料對映到...
Spring Quartz如何動態配置時間(3)
書接上回,上回說到,我們已經將頁面的時間設定轉為了cron expression,下面我記錄了時間規則。3 記錄時間規則 我將時間規則存入資料庫中,目的是為了生成歷史日誌,也可以存入xml檔案中。當然您也可以省略此步,直接將轉換後的規則放入相應的quartz trigger中。4 更新任務觸發器的時...