spring 定时任务表达式校验可以直接调用这个包
下面的方法校验:
CronExpression.isValidExpression(cronExpression)
maven引用(版本号看自己需要填写):
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>
当然,我们在创建的时候,也需
校验
cron
表达式
是否合法,调用工具类中的checkCronValid() 方法
校验
即可,一般不建议用正则
表达式
匹配验证cron
表达式
,一是匹配规则太复杂几乎没法修改,二是容易出错,所以强烈建议你使用CronExpression包进行验证。在实际接口中,我们也会使用到,比如我们新建了个调度组,调度执行
任务
,那么我们可能就需要解析cron的
表达式
,得到下次执行的时间。上面是查询调度组列表,需展示下次调度执行时间。二、建工具类 CronUtils。接下来编写相关业务代码。
使用
Spring
scheduling包中的org.
spring
framework.scheduling.support.CronSequenceGenerator类,参考quartz(org.quartz.CronExpression#isSatisfiedBy)的实现逻辑:获取上一秒的下一个cron触发时间,判断是否和目标时间一样。
1.cron:
表达式
,指定
任务
在特
定时
间执行;
2.fixedDelay:表示上一次
任务
执行完成后多久再次执行,参数类型为long,单位ms;
3.fixedDelayString:与fixedDelay含义一样,只是参数类型变为String;
4.fixedRate:表示按一定的频率执行
任务
,参数类型为long,单位ms;
5.fixedRateStri...
都使用数字,但还可以出现如下特殊字符,它们的含义是:
(1) :表示匹配该域的任意值,假如在Minutes域使用, 即表示每分钟都会触发事件。
(2) ? :只能用在DayofMonth和DayofWeek两个域。因为DayofMonth和 DayofWeek...
在后端的开发中,通常会使用到
定时
任务
。而Cron
表达式
可以很好地描述
定时
任务
的执行时间。本文主要介绍如何使用Smart-tools工具箱中的Cron
表达式
工具在线生成和验证Quartz和 Crontab的
表达式
。
近来由于项目的需要,开发了几个
定时
任务
,由于项目已经集成了
spring
,并提供了注解的支持,也就选择了schedule的方式。网上schedule的配置和使用说明都很多,所以上手还是很方便的。接下来说一下几点感受。
//判断是否为cron
表达式
返回是true否false
org.quartz.CronExpression.isValidExpression(cronExpression);
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.quartz.CronExpression;
import org.quartz.CronScheduleBuilder;
import org.quartz.Cr.