根据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表达式获取最近几次执行的时间相关推荐

  1. C#/.NET 解析Cron表达式,根据Cron表达式获取最近执行时间

    Cron表达式定义及详情 请参考https://blog.csdn.net/HybridTheory_/article/details/88382442 使用C#解析Cron表达式,得到执行时间 cl ...

  2. 根据cron表达式获取下次执行时间

    一.根据cron表达式获取下次执行时间 直接上代码 String cronExpress = "xxxxxxxxxx";//此处为cron表达式try{CronExpression ...

  3. Quartz动态改变Cron表达式,来实现动态执行Spring定时任务

    Quartz定时器非常强大,但是有时候我们想要不重就能动态的改变Cron表达式的值. 这样我们可以在配置文件中(当然数据库也可以)配置一个表达式的值. 每次想改变表达式的值的时候手动修改配置文件中的表 ...

  4. quartz 每月一次_quartz cron表达式:启动时先执行一次 以后每个月执行一次,怎么做?...

    2017-12-02 回答 "0 0 0 1* ?" 每月第一日0时执行 --------------------------------------------- 字段 允许值 ...

  5. java定时任务cron表达式 ,每周五下午两点半执行

    @Scheduled(cron = "0 30 14 ? * 5") 信了其他文章的鬼,也可能java不一样,DayofWeek这个参数 1就是周一,2就是周二,用代码验证过了.

  6. 获取cron表达式 下次执行时间 和 执行间隔

    public class CronTest {/*** 根据cron表达式获取执行周期*/@Testpublic void getPeriodByCron() {//30s执行一次String cro ...

  7. spring cron表达式及解析过程

    1.cron表达式 cron表达式是用来配置spring定时任务执行时间的字符串,由5个空格分隔成的6个域构成,格式如下: {秒}  {分}  {时}  {日}  {月}  {周} 每一个域的含义解释 ...

  8. cron表达式生成函数(小时部分自定义) 1小时30分钟,1小时20分钟,1小时40分钟..

    cron表达式实例: 每1小时30分钟执行一次(间隔时间90分钟) 使用两条cron表达式实现每90分钟执行一次. 第一条以01:30为起点,执行周期为3小时. 第二条以00:00为起点,执行周期为3 ...

  9. 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- ...

最新文章

  1. matlab有限域多项式除法_椭圆曲线密码学简介(二):有限域的椭圆曲线及离散对数问题...
  2. linux 命令详解 二十二
  3. ORA-20000:ORU-10027:buffer overflow,limit of 2000 bytes.
  4. 蓝桥杯C++ AB组辅导课 第一讲 递归与递推 Acwing
  5. 入住两年的CSDN,在今天2020年8月27日,成为CSDN博客专家
  6. 【02】Kubernets:使用 kubeadm 部署 K8S 集群
  7. SpringBoot——项目启动时读取配置及初始化资源
  8. android插件化之路
  9. 10分钟python游戏_牛得一批!10分钟用Python编写一个贪吃蛇小游戏
  10. 在 OSX 10.9.4 上编译安装 FastDFS 及其 PHP 扩展
  11. 图书馆管理系统(C语言实现)
  12. mkfs.ext3 快速格式化_U盘数据快速恢复
  13. MATLAB数字图像处理 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
  14. 光猫修改rms服务器地址大全,光猫服务器dns怎么设置教程
  15. 《陶哲轩实分析》阅读
  16. matlab 获取文件毫秒时间,Matlab:将文件日期以毫秒转换为Matlab时间格式
  17. Python​ 重解零基础100题(2)
  18. C语言实例5——用*号输出字母C的图案。
  19. android手机或者平板重力感应器描述
  20. 迭代扩展卡尔曼滤波学习

热门文章

  1. 大数据学习笔记(一)——大数据概述
  2. 计算机如何与电视屏幕连接,电脑如何与电视机连接
  3. 使用Node+websocket实现简易1v1聊天室(前端+服务器)
  4. 【学习笔记】GoogleNet 网络结构
  5. 【机器学习】先搞懂这八大基础概念,再谈机器学习入门!
  6. 2023计算机毕业设计SSM最新选题之java健身俱乐部5jz0z
  7. 0460-HDFS纠删码的机架感知
  8. php的AES-128 EBC加密、解密
  9. 阿里天池——利用pandas分析美国总统竞选选票情况
  10. Android中Wi-Fi扫描、连接和信息(一)