Web版Cron表达式获取最近执行时间

本文介绍了一个cron表达式生成器的web版资源,详细讲解了如何通过cron.js文件发送ajax请求,从后台获取并显示最近8次的执行时间。只需在页面勾选表达式,即可实时获取执行时间。

上传的 cron表达式生成器(web版)资源,没有介绍如何获取最近的几次的执行时间,在这里说明一下。

在上传的资源里面有 cron.js文件,该文件可以发送ajax请求,从后台获取到最近的执行时间,返回到前台页面显示。

在文件中找到如下代码,根据自己的需求更改代码。

cron.change(function () {
	    btnFan();
	    //设置最近8次运行时间
	    $.ajax({
	        type: 'get',
	        url: "该地方填写ajax请求地址",
	        dataType: "json",
	        data: { "cronExpression": $("#cron").val() },
	        success: function (data) {
	            if (data && data.length == 8) {
	                var strHTML = "<ul>";
	                for (var i = 0; i < data.length; i++) {
	                    strHTML += "<li>" + data[i] + "</li>";
	                }
	                strHTML +="</ul>"
	                $("#runTime").html(strHTML);
	            } else {
	                $("#runTime").html("<font color='red' size='3'>表达式错误,请按照指定格式选择!</font>");
	            }
	        }
	    });
	});

这里列出后台的根据cron表达式获取最近几次执行时间的链接,到此就可以实现完整的页面显示。

在页面勾选表达式即可及时发送请求,获取最近的执行时间,显示在页面。

在Java中,可借助`quartz`包来根据Cron表达式获取执行时间,以下是几种常见方法: ### 使用`CronExpression`获取下次执行时间 ```java import org.quartz.CronExpression; import java.text.SimpleDateFormat; import java.util.Date; public class CronTimeExample { public static void main(String[] args) { String cronExpress = "xxxxxxxxxx";//此处为cron表达式 try { CronExpression cronExpression = new CronExpression(cronExpress); Date date = cronExpression.getTimeAfter(new Date()); SimpleDateFormat dataFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString = dataFormat.format(date); System.out.println("下次执行时间: " + dateString); } catch (Exception e) { System.err.println("cron获取下次执行时间异常!"); e.printStackTrace(); } } } ``` 该方法直接使用`CronExpression`类,通过`getTimeAfter`方法获取当前时间之后的下一次执行时间,并将其转换为指定格式的字符串输出 [^2]。 ### 使用`CronTrigger`获取下次执行时间 ```java import org.quartz.CronScheduleBuilder; import org.quartz.CronTrigger; import org.quartz.TriggerBuilder; import java.util.Date; public class CronTriggerExample { public static long getNextTriggerTime(String cron) { if (!org.quartz.CronExpression.isValidExpression(cron)) { return 0; } CronTrigger trigger = TriggerBuilder.newTrigger() .withIdentity("Caclulate Date") .withSchedule(CronScheduleBuilder.cronSchedule(cron)) .build(); Date time0 = trigger.getStartTime(); Date time1 = trigger.getFireTimeAfter(time0); return time1.getTime(); } public static void main(String[] args) { String cron = "xxxxxxxxxx";//此处为cron表达式 long nextTime = getNextTriggerTime(cron); System.out.println("下次执行时间时间戳: " + nextTime); } } ``` 此方法构建了一个`CronTrigger`对象,利用`getFireTimeAfter`方法获取下一次执行时间时间戳 [^3]。 ### 引入依赖 若使用Maven项目,需在`pom.xml`文件中引入`quartz`依赖: ```xml <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version> </dependency> ``` 这是使用`quartz`相关类的前提条件 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值