java生成Cron表达式

news/2024/7/7 7:50:04 标签: java, 后端

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 }

 

转载于:https://www.cnblogs.com/java0619/p/11613440.html


http://www.niftyadmin.cn/n/710483.html

相关文章

上层建筑——DOM元素的特性与属性(dojo/dom-attr)

上一篇返本求源中,我们从DOM基础的角度出发,总结了特性与属性的关系。本文中,我们来看看dojo框架是如何处理特性与属性的。dojo框架中特性的处理位于dojo/dom-attr模块属性的处理为与dojo/dom-prop模块中。 attr.set()…

34 特殊四位数

34 特殊四位数 作者: 孙辞海 时间限制: 10S章节: 一维数组 问题描述 : 数学一直是明明很喜欢的一门学科,不但上课认真听讲,而且还自己钻研。有一次,老师在课上讲了一种特殊的四位整数,这种整数有两个特性: 第一&am…

poj1182 带权并查集

题意:现在有三个物种,形成一种循环好吧不装逼我们石头剪刀布就是有 n 个动物,每个动物已经确定自己会出石头剪刀或者布,但我们并不知道,然后每次拿两只比较,告诉你平局或者谁胜,问这些里面有多少…

36 数列1

36 数列1 作者: frankhuhu 时间限制: 10S章节: 一维数组 问题描述 : 思维的严密性是相当重要的,尤其是在程序设计中,一个小小的错误,就可能导致无法想象的后果。明明的爸爸是一名富有经验的程序设计专家,深知思维严密的重要性。…

RTB

RTB —— Real Time Bidding 的简称,就是实时竞价。跟传统购买形式相比,RTB是在每一个广告展示曝光的基础上进行竞价,就是每一个PV都会进行一次展现竞价,谁出价高,谁的广告就会被这个PV看到。 有个问题出现了&#xff…

find the mincost route(最小环,最短路,floyd)

find the mincost route Time Limit: 1000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3425 Accepted Submission(s): 1397 Problem Description杭 州有N个景区,景区之间有一些双向的路来连接,现在860…

37 混合牛奶

37 混合牛奶 作者: xxx时间限制: 1S章节: 结构体 问题描述 : 牛奶包装是一个如此低利润的生意,所以尽可能低的控制初级产品(牛奶)的价格变得十分重要。请帮助快乐的牛奶制造者(Merry Milk Makers)以可能的最廉价的方式取得他们所需的牛奶。快乐的牛奶制造公司从一些农民那购…

SqlBulkCopy块拷贝数据时,不履行触发器和束缚 解决办法

在new SqlBulkCopy时,设置SqlBulkCopyOptions属性即可 SqlBulkCopy bulkCopy new SqlBulkCopy(ConStr,SqlBulkCopyOptions.FireTriggers); 注意:函数重载问题:SqlBulkCopy一个参数时,第一个参数是sqlconnection,两个参数时第一个参数是sqlconnectionString. SqlBulkCopyOption…