Spring Quartz如何動態配置時間(1)

2021-08-29 14:48:55 字數 4046 閱讀 6030

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 更新任務觸發器的時...