spring中可以自動配置quartz嗎

時間 2021-10-14 20:16:03

1樓:京北紅日

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" />

8910 每月則需要選擇該月的第幾個星期的星期幾

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" > 四

910 < 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" > 星期六

18192021 每週則需要選擇星期幾

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" > 星期六

12131415 自定義則選擇具體的日期,如 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" > 下午

78 < 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

2122 < 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之間的整數)

383940 ok. 這樣我們的頁面設定就完成了。: - )

上回說到,我們的設定頁面已經做好了,接下來就是將時間轉換為unix cron expression。

2) 將時間轉換為unix cron expression

需要actionform將頁面表單資料對映到action中,然後在action中轉換為cron expression:

1 schedulerform schedulerform = (schedulerform) form;

2 string jobname = schedulerform.getjobname();

3 string cronexpression = "" ;

4 string commonneeds = ;

5 string monthlyneeds = ;

6 string weeklyneeds = schedulerform.getdayofweek();

7 string userdefinedneeds = schedulerform.getdate();

8 string everywhat = schedulerform.geteverywhat();

9 // 得到時間規則

10 cronexpression = cronexpconversion.getcronexpression(everywhat, commonneeds,

11 monthlyneeds, weeklyneeds, userdefinedneeds);

12 我定義了一個 規則類來處理轉換規則(寫得不是很好 能用就行 嘿嘿)

12 /**

3 * 頁面設定轉為unix cron expressions 轉換類

4 * cronexpconversion

5 */

6 public class cronexpconversion else if ( " weekly " .equals(everywhat)) else if ( " userdefined " .equals(everywhat))

47 string month = userdefinedneeds.split( " - " )[ 1 ];

48 if (month.startswith( " 0 " ))

51 string year = userdefinedneeds.split( " - " )[ 0 ];

52 // fixme 暫時不加年份 quartz報錯

53 /* cronex = (commons + dayofmonth + " " + month + " "

54 + cronexrelated.specialcharacters.get(cronexrelated._any)

55 + " " + year).trim(); */

56 cronex = (commons + dayofmonth + " " + month + " "

57 + cronexrelated.specialcharacters.get(cronexrelated._any)

58 + " " ).trim();

59 }

60 return cronex;

61 }

62 }

63 這樣就將頁面的時間設定轉為了cron expression。

書接上回,上回說到,我們已經將頁面的時間設定轉為了cron expression,下面我記錄了時間規則。

3) 記錄時間規則

我將時間規則存入資料庫中,目的是為了生成歷史日誌,也可以存入xml檔案中。當然您也可以省略此步,直接將轉換後的規則放入相應的quartz trigger中。

4) 更新任務觸發器的時間設定

到了關鍵的一步了,也是最簡單的一步,一個方法就可以實現了。

首先,我們需要通過trigger的名稱得到一個crontriggerbean;

其次,通過trigger的setcronexpression(string cronexp)方法將新的表示式注入;

最後,reschedule the job,ok!

spring容器中怎麼配置list集合

逝水流炎 jstl標籤庫考慮不?用標籤直接展現。不考慮的話可以寫一個這個input在頁面不會展現,而且後端傳過來的list可以被儲存在裡面。需要的時候通過 id val 獲取到這個list集合。直接在js 裡通過 var woshilist new arraylist woshilist repla...

如何在spring中配置定時任務

育知同創教育 在spring 中 基於註解的 定時 bai配置du很簡單,只需要三步哦,如下zhi 1 在類名前加 daocomponent註解,標記該bean,也回就是配置答掃描標記。2 在該類下的方法前加定是配置註解,schedule cron 0 30 3 新增配置檔案。關於spring定時任...

我這個配置可以吃雞嗎,畫質可以調中嗎?

在官方推薦配置裡cpu需要core i3 4340和 amd fx 6300及以上,而顯示卡需要gtx660 amd hd7850及以上就可以最低特效執行,但是值得注意的一點是,官方表明記憶體必須要6gb才能流暢執行,所以我們推薦的最低配置就以這個配置為主。請問電腦硬體詳情配置圖在 沒有看到。建議參...