1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package com.simuwang.schedule.util;
- import com.simuwang.base.common.util.DateUtils;
- import org.quartz.CronExpression;
- import org.quartz.TriggerUtils;
- import org.quartz.impl.triggers.CronTriggerImpl;
- import java.text.ParseException;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * cron表达式工具类
- *
- * @author ruoyi
- *
- */
- public class CronUtils
- {
- /**
- * 返回一个布尔值代表一个给定的Cron表达式的有效性
- *
- * @param cronExpression Cron表达式
- * @return boolean 表达式是否有效
- */
- public static boolean isValid(String cronExpression)
- {
- return CronExpression.isValidExpression(cronExpression);
- }
- /**
- * 返回一个字符串值,表示该消息无效Cron表达式给出有效性
- *
- * @param cronExpression Cron表达式
- * @return String 无效时返回表达式错误描述,如果有效返回null
- */
- public static String getInvalidMessage(String cronExpression)
- {
- try
- {
- new CronExpression(cronExpression);
- return null;
- }
- catch (ParseException pe)
- {
- return pe.getMessage();
- }
- }
- /**
- * 返回下一个执行时间根据给定的Cron表达式
- *
- * @param cronExpression Cron表达式
- * @return Date 下次Cron表达式执行时间
- */
- public static Date getNextExecution(String cronExpression)
- {
- try
- {
- CronExpression cron = new CronExpression(cronExpression);
- return cron.getNextValidTimeAfter(new Date(System.currentTimeMillis()));
- }
- catch (ParseException e)
- {
- throw new IllegalArgumentException(e.getMessage());
- }
- }
- /**
- * 通过表达式获取近10次的执行时间
- *
- * @param cron 表达式
- * @return 时间列表
- */
- public static List<String> getRecentTriggerTime(String cron)
- {
- List<String> list = new ArrayList<String>();
- try
- {
- CronTriggerImpl cronTriggerImpl = new CronTriggerImpl();
- cronTriggerImpl.setCronExpression(cron);
- List<Date> dates = TriggerUtils.computeFireTimes(cronTriggerImpl, null, 10);
- for (Date date : dates)
- {
- list.add(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, date));
- }
- }
- catch (ParseException e)
- {
- return null;
- }
- return list;
- }
- }
|