根据cron表达式获取最近几次执行的时间
根据cron表达式获取最近几次执行的时间
最近有个新需求,就是现在有个定时任务,前端需要展示出最近一次的具体执行时间:
具体可有以下两种做法(可能更多),个人推荐方式一
- 方式一:指定获取的最近执行的次数
首先maven引入依赖(本来就有定时任务的,此步骤仅又来做个人测试)
<dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.1</version></dependency>
直接贴上method
/**** @param cronExpression cron表达式* @param numTimes 下一(几)次运行的时间* @return*/
public static List<String> getNextExecTime(String cronExpression,Integer numTimes) {List<String> list = new ArrayList<>();CronTriggerImpl cronTriggerImpl = new CronTriggerImpl();try {cronTriggerImpl.setCronExpression(cronExpression);} catch(ParseException e) {e.printStackTrace();}// 这个是重点,一行代码搞定List<Date> dates = TriggerUtils.computeFireTimes(cronTriggerImpl, null, numTimes);SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");for (Date date : dates) {list.add(dateFormat.format(date));}return list;}
- 方式二:获取指定时间内(可以自己指定年或月或日)所有的执行时间,然后在所有的时间内取前几个(不推荐,当触发时间过短,程序响应时间非常长)
废话不多说,直接上method
/*** @param cronExpression cron表达式* @param numTimes 下一(几)次运行的时间* @return*/public static List<String> getRecentExecTime(String cronExpression, Integer numTimes) {List<String> list = new ArrayList<>();try {CronTriggerImpl cronTrigger = new CronTriggerImpl();cronTrigger.setCronExpression(cronExpression);// 这里写要准备猜测的cron表达式Calendar calendar = Calendar.getInstance();Date now = calendar.getTime();// 把统计的区间段设置为从现在到2年后的今天(主要是为了方法通用考虑,如那些1个月跑一次的任务,如果时间段设置的较短就不足20条)calendar.add(Calendar.YEAR, 2);// 这个是重点,一行代码搞定List<Date> dates = TriggerUtils.computeFireTimesBetween(cronTrigger, null, now, calendar.getTime());SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");for(int i = 0; i < dates.size(); i++) {// 这个是提示的日期个数if(i < numTimes) {list.add(dateFormat.format(dates.get(i)));}else {break;}}} catch(ParseException e) {e.printStackTrace();}return list;}
根据cron表达式获取最近几次执行的时间相关推荐
- C#/.NET 解析Cron表达式,根据Cron表达式获取最近执行时间
Cron表达式定义及详情 请参考https://blog.csdn.net/HybridTheory_/article/details/88382442 使用C#解析Cron表达式,得到执行时间 cl ...
- 根据cron表达式获取下次执行时间
一.根据cron表达式获取下次执行时间 直接上代码 String cronExpress = "xxxxxxxxxx";//此处为cron表达式try{CronExpression ...
- Quartz动态改变Cron表达式,来实现动态执行Spring定时任务
Quartz定时器非常强大,但是有时候我们想要不重就能动态的改变Cron表达式的值. 这样我们可以在配置文件中(当然数据库也可以)配置一个表达式的值. 每次想改变表达式的值的时候手动修改配置文件中的表 ...
- quartz 每月一次_quartz cron表达式:启动时先执行一次 以后每个月执行一次,怎么做?...
2017-12-02 回答 "0 0 0 1* ?" 每月第一日0时执行 --------------------------------------------- 字段 允许值 ...
- java定时任务cron表达式 ,每周五下午两点半执行
@Scheduled(cron = "0 30 14 ? * 5") 信了其他文章的鬼,也可能java不一样,DayofWeek这个参数 1就是周一,2就是周二,用代码验证过了.
- 获取cron表达式 下次执行时间 和 执行间隔
public class CronTest {/*** 根据cron表达式获取执行周期*/@Testpublic void getPeriodByCron() {//30s执行一次String cro ...
- spring cron表达式及解析过程
1.cron表达式 cron表达式是用来配置spring定时任务执行时间的字符串,由5个空格分隔成的6个域构成,格式如下: {秒} {分} {时} {日} {月} {周} 每一个域的含义解释 ...
- cron表达式生成函数(小时部分自定义) 1小时30分钟,1小时20分钟,1小时40分钟..
cron表达式实例: 每1小时30分钟执行一次(间隔时间90分钟) 使用两条cron表达式实现每90分钟执行一次. 第一条以01:30为起点,执行周期为3小时. 第二条以00:00为起点,执行周期为3 ...
- Linux Cron表达式每半个小时执行一次
0 0/30 * * * ? 2019-06-21 09:00:00 2019-06-21 09:30:00 2019-06-21 10:00:00 2019-06-21 10:30:00 2019- ...
最新文章
- matlab有限域多项式除法_椭圆曲线密码学简介(二):有限域的椭圆曲线及离散对数问题...
- linux 命令详解 二十二
- ORA-20000:ORU-10027:buffer overflow,limit of 2000 bytes.
- 蓝桥杯C++ AB组辅导课 第一讲 递归与递推 Acwing
- 入住两年的CSDN,在今天2020年8月27日,成为CSDN博客专家
- 【02】Kubernets:使用 kubeadm 部署 K8S 集群
- SpringBoot——项目启动时读取配置及初始化资源
- android插件化之路
- 10分钟python游戏_牛得一批!10分钟用Python编写一个贪吃蛇小游戏
- 在 OSX 10.9.4 上编译安装 FastDFS 及其 PHP 扩展
- 图书馆管理系统(C语言实现)
- mkfs.ext3 快速格式化_U盘数据快速恢复
- MATLAB数字图像处理 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
- 光猫修改rms服务器地址大全,光猫服务器dns怎么设置教程
- 《陶哲轩实分析》阅读
- matlab 获取文件毫秒时间,Matlab:将文件日期以毫秒转换为Matlab时间格式
- Python​ 重解零基础100题(2)
- C语言实例5——用*号输出字母C的图案。
- android手机或者平板重力感应器描述
- 迭代扩展卡尔曼滤波学习