java生成Cron表達式


1、上代碼

 1 /**
 2  * @ClassName: CronUtil
 3  * @Description: Cron表達式工具類 目前支持三種常用的cron表達式 1.每天的某個時間點執行 例:12 12 12 * *
 4  *               ?表示每天12時12分12秒執行 2.每周的哪幾天執行 例:12 12 12 ? * 1,2,3表示每周的周1周2周3
 5  *               ,12時12分12秒執行 3.每月的哪幾天執行 例:12 12 12 1,21,13 * ?表示每月的1號21號13號
 6  *               12時12分12秒執行
 7  * @author
 8  * @date
 9  * 
10  */
11 public class CronUtil {
12 
13     /**
14      * 
15      * 方法摘要:構建Cron表達式
16      * 
17      * @param rate  頻率 0秒;1分;2小時;3日;4月
18      * @param cycle 周期
19      * @return String
20      */
21     public static String createLoopCronExpression(int rate, int cycle) {
22         String cron = "";
23         switch (rate) {
24         case 0:// 每cycle秒執行一次
25             cron = "0/" + cycle + " * * * * ?";
26             break;
27         case 1:// 每cycle分鍾執行一次
28             cron = "0 0/" + cycle + " * * * ?";
29             break;
30         case 2:// 每cycle小時執行一次
31             cron = "0 0 0/" + cycle + " * * ?";
32             break;
33         case 3:// 每cycle天的0點執行一次
34             cron = "0 0 0 1/" + cycle + " * ?";
35             break;
36         case 4:// 每cycle月的1號0點執行一次
37             cron = "0 0 0 1 1/" + cycle + " ? ";
38             break;
39         case 5://  每天cycle點執行一次
40             cron = "0 0 " + cycle+ "  * * ?";
41             break;
42         default:// 默認每cycle秒執行一次
43             cron = "0/1 * * * * ?";
44             break;
45         }
46         return cron;
47     }
48 
49     /**
50      * 
51      * 方法摘要:構建Cron描述
52      * 
53      * @param rate  頻率 0秒;1分;2小時;3日;4月
54      * @param cycle 周期
55      * @return String
56      */
57     public static String createLoopCronDescription(int rate, int cycle) {
58         String desc = "";
59         switch (rate) {
60         case 0:// 每cycle秒執行一次
61             desc = "每隔" + cycle + "秒觸發一次任務";
62             break;
63         case 1:// 每cycle分鍾執行一次
64             desc = "每隔" + cycle + "分鍾觸發一次任務";
65             break;
66         case 2:// 每cycle小時執行一次
67             desc = "每隔" + cycle + "小時觸發一次任務";
68             break;
69         case 3:// 每cycle天的0點執行一次
70             desc = "每隔" + cycle + "天的0點觸發一次任務";
71             break;
72         case 4:// 每cycle月的1號0點執行一次
73             desc = "每隔" + cycle + "月的1日0點觸發一次任務";
74             break;
75         case 5:// 每天cycle點執行一次
76             desc = "每天" + cycle + "點執行一次任務";
77             break;
78         default:// 默認每cycle秒執行一次
79             desc = "每隔" + cycle + "秒觸發一次任務";
80             break;
81         }
82         return desc;
83     }
84 
85     // 參考例子
86     public static void main(String[] args) {
87 
88         System.out.println(CronUtil.createLoopCronExpression(5, 1));
89         System.out.println(CronUtil.createLoopCronDescription(5, 1));
90         // 執行時間:每天的12時12分12秒 end
91 
92     }
93 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM