public class CronUtil {
public static String createLoopCronExpression(int rate, int cycle) {
String cron = "";
switch (rate) {
case 0:// 每 cycle 秒执行一次
cron = "0/" + cycle + " * * * * ?";
break;
case 1:// 每 cycle 分钟执行一次
cron = "0 0/" + cycle + " * * * ?";
break;
case 2:// 每 cycle 小时执行一次
cron = "0 0 0/" + cycle + " * * ?";
break;
case 3:// 每 cycle 天的 0 点执行一次
cron = "0 0 0 1/" + cycle + " * ?";
break;
case 4:// 每 cycle 月的 1 号 0 点执行一次
cron = "0 0 0 1 1/" + cycle + " ? ";
break;
case 5:// 每天 cycle 点执行一次
cron = "0 0 " + cycle+ " * * ?";
break;
default:// 默认每 cycle 秒执行一次
cron = "0/1 * * * * ?";
break;
}
return cron;
}
public static String createLoopCronDescription(int rate, int cycle) {
String desc = "";
switch (rate) {
case 0:// 每 cycle 秒执行一次
desc = "每隔" + cycle + "秒触发一次任务";
break;
case 1:// 每 cycle 分钟执行一次
desc = "每隔" + cycle + "分钟触发一次任务";
break;
case 2:// 每 cycle 小时执行一次
desc = "每隔" + cycle + "小时触发一次任务";
break;
case 3:// 每 cycle 天的 0 点执行一次 type 为1时,执行
desc = "每隔" + cycle + "天的 0 点触发一次任务";
break;
case 4:// 每 cycle 月的 1 号 0 点执行一次
desc = "每隔" + cycle + "月的 1 日 0 点触发一次任务";
break;
case 5:// 每天 cycle 点执行一次
desc = "每天" + cycle + "点执行一次任务";
break;
default:// 默认每 cycle 秒执行一次
desc = "每隔" + cycle + "秒触发一次任务";
break;
}
return desc;
}
public static void main(String[] args) {
System.out.println("测试++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.println(CronUtil.createLoopCronExpression(3, 30));
System.out.println(CronUtil.createLoopCronDescription(3, 30));
System.out.println("测试++++++++++++++++++++++++++++++++++++++++++++++++");
}
}