quartz中Cron表示式与model互相转换
2015-12-04 11:37
513 查看
/** * BATCH执行周期枚举 * * */ public enum ExecuteCycle { /** 每天 */ EACH_DAY_ID("01"), /** 每周 */ EACH_WEEK_ID("02"), /** 每月 */ EACH_MONTH_ID("03"), /** 每年 */ EACH_YEAR_ID("04"); private final String value; ExecuteCycle(String value) { this.value = value; } public String getValue() { return value; } }
/** * BATCH末日区分枚举 * * */ public enum LastDayFlg { /** 最后一天 */ LAST_DAY("01"), /** 指定时间 */ SPECIFY_DAY("02"); private final String value; LastDayFlg(String value) { this.value = value; } public String getValue() { return value; } }
** * batch执行时间设定model * * */ public class BatchTimeSet { // 执行周期 private String executeCycle; // 执行周期开始年月日 private String executeStartYmd; // 最后一天执行 private String lastDay; // 执行月 private String executeMonth; // 执行日 private String executeDay; // 执行时 private String executeHour; // 执行分 private String executeMinute; // 执行秒 private String executeSecond; // 执行星期 private String executeWeek; ·········· --------------
/** * 将model转换为Cron表示式 */ private String transBeanToExpre(BatchTimeSet batchTimeSetBean) { String cronExpression = ""; // 秒 if (batchTimeSetBean.getExecuteSecond() != null && !batchTimeSetBean.getExecuteSecond().isEmpty()) { cronExpression = cronExpression.concat(batchTimeSetBean.getExecuteSecond()).concat(" "); } else { cronExpression = cronExpression.concat("* "); } // 分钟 if (batchTimeSetBean.getExecuteMinute() != null && !batchTimeSetBean.getExecuteMinute().isEmpty()) { cronExpression = cronExpression.concat(batchTimeSetBean.getExecuteMinute()).concat(" "); } else { cronExpression = cronExpression.concat("* "); } // 小时 if (batchTimeSetBean.getExecuteHour() != null && !batchTimeSetBean.getExecuteHour().isEmpty()) { cronExpression = cronExpression.concat(batchTimeSetBean.getExecuteHour()).concat(" "); } else { cronExpression = cronExpression.concat("* "); } // 每天 if (batchTimeSetBean.getExecuteCycle().equals(ExecuteCycle.EACH_DAY_ID.getValue())) { // 日期 cronExpression = cronExpression.concat("? "); // 月份 cronExpression = cronExpression.concat("* "); // 星期 cronExpression = cronExpression.concat("*"); } else if (batchTimeSetBean.getExecuteCycle().equals(ExecuteCycle.EACH_WEEK_ID.getValue())) { // 每周 // 日期 cronExpression = cronExpression.concat("? "); // 月份 cronExpression = cronExpression.concat("* "); // 星期 cronExpression = cronExpression.concat(batchTimeSetBean.getExecuteWeek()); } else if (batchTimeSetBean.getExecuteCycle().equals(ExecuteCycle.EACH_MONTH_ID.getValue())) { // 每月 // 最后一天 if (batchTimeSetBean.getLastDay().equals(LastDayFlg.LAST_DAY.getValue())) { // 日期 cronExpression = cronExpression.concat("L "); // 月份 cronExpression = cronExpression.concat("* "); // 星期 cronExpression = cronExpression.concat("?"); } else { // 指定时间 // 日期 cronExpression = cronExpression.concat(batchTimeSetBean.getExecuteDay()).concat(" "); // 月份 cronExpression = cronExpression.concat("* "); // 星期 cronExpression = cronExpression.concat("?"); } } else if (batchTimeSetBean.getExecuteCycle().equals(ExecuteCycle.EACH_YEAR_ID.getValue())) { // 每年 // 最后一天 if (batchTimeSetBean.getLastDay().equals(LastDayFlg.LAST_DAY.getValue())) { // 日期 cronExpression = cronExpression.concat("L "); // 月份 cronExpression = cronExpression.concat("12 "); // 星期 cronExpression = cronExpression.concat("?"); } else { // 指定时间 // 日期 cronExpression = cronExpression.concat(batchTimeSetBean.getExecuteDay()).concat(" "); // 月份 cronExpression = cronExpression.concat(batchTimeSetBean.getExecuteMonth()).concat(" "); // 星期 cronExpression = cronExpression.concat("?"); } } return cronExpression; }
/** * 将Cron表示式转换为model <br/> * Cron表示式规则:秒 分钟 小时 日期 月份 星期 年(可选) <br/> * 中间用空格分隔 */ private void transExpreToBean(String cronExpression, BatchTimeSet batchTimeSetBean) { if (cronExpression != null && !cronExpression.isEmpty()) { String[] cronStrArr = cronExpression.split(" "); // TODO 此处未对年份进行处理,默认年份未设定,画面也没有年份的具体选择 // 秒 if (!cronStrArr[0].equals("*")) { batchTimeSetBean.setExecuteSecond(cronStrArr[0]); } // 分钟 if (!cronStrArr[1].equals("*")) { batchTimeSetBean.setExecuteMinute(cronStrArr[1]); } // 小时 if (!cronStrArr[2].equals("*")) { batchTimeSetBean.setExecuteHour(cronStrArr[2]); } // 每天 batchTimeSetBean.setExecuteCycle(ExecuteCycle.EACH_DAY_ID.getValue()); // 日期 if (!cronStrArr[3].equals("*") && !cronStrArr[3].equals("?")) { if (cronStrArr[3].equals("L")) { batchTimeSetBean.setLastDay(LastDayFlg.LAST_DAY.getValue()); } else { batchTimeSetBean.setLastDay(LastDayFlg.SPECIFY_DAY.getValue()); batchTimeSetBean.setExecuteDay(cronStrArr[3]); } // 每月 batchTimeSetBean.setExecuteCycle(ExecuteCycle.EACH_MONTH_ID.getValue()); } // 月份 if (!cronStrArr[4].equals("*")) { batchTimeSetBean.setExecuteMonth(cronStrArr[4]); // 每年 batchTimeSetBean.setExecuteCycle(ExecuteCycle.EACH_YEAR_ID.getValue()); } // 星期 if (!cronStrArr[5].equals("*") && !cronStrArr[5].equals("?")) { batchTimeSetBean.setExecuteWeek(cronStrArr[5]); // 每周 batchTimeSetBean.setExecuteCycle(ExecuteCycle.EACH_WEEK_ID.getValue()); } } }
相关文章推荐
- Couldn't find leader offsets for Set news_topic
- unity NGUI Tutorial event system
- 别人走的路
- JAVA 按年月打印日历 Calendar的简单使用
- Linux下oracle定时备份 ftp上传到指定机器
- 数据结构--Chapter4(串与数组)
- 想学习做产品
- 中华武术
- 10004---jQuery 语法
- Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(三)
- Linux 下新增虚拟内存
- JSP标准标签库(JSTL)--XML标签库 x
- Java 网络学习
- 《秘密》卷一:秘密-智慧的秘密
- 递归练习
- 敏感词检测
- @官方渠道IOS应用审核加速上架AppStore服务
- popwindow的使用
- java采用 java.util.Properties类读取.properties配置文件
- 关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)