如题,怎么得到这个任务会执行的次数,怎么确定这个任务不会在执行了。求大神解答,谢谢
我换了一种方式,在任务执行类中通过这段代码 jobExecutionContext.getNextFireTime() 拿到当前任务的下次执行时间,如过这个任务已经执行完毕了,那这段代码获取下次执行时间就会返回null,通过这个null来判断cron表达式是否执行完。不知道后期会有什么问题,暂时这样解决吧。谢谢回答问题的大神们。
在任务内部做这些标志和统计,然后写文件等传递出来
菜鸟给你一点提示吧 ,quartz如果定义一个定时任务设置为每天早上1点执行一次,那么他的执行次数你说会有多少次?
也就是说,你没有给定你执行任务的终止时间,如果给定了终止时间,那么好办,你自己通过定义标志然后自己统计 出来便可。。。。。
如何认为这个任务已经完成,你可以在完成每次任务之后,通过改变一个标志,通过这个标志去判定。。
纯属通过楼上的大神指定,给你更详尽的解释。。
不排除quartz内部自己有这样的类似方法,据我所知是没有的。
首页,可以在job类中打印执行信息;其次,cron表达式决定了任务的执行次数的,而且统计这个执行次数为没有多大的意义啊。
String CronExpression = request.getParameter("CronExpression");
CronTriggerImpl cronTriggerImpl = new CronTriggerImpl();
cronTriggerImpl.setCronExpression(CronExpression);//这里写要准备猜测的cron表达式
Calendar calendar = Calendar.getInstance();
Date now = calendar.getTime();
calendar.add(Calendar.DAY_OF_MONTH, 1);//制定日期范围
List<String> list = new ArrayList<String>();
List<Date> dates = TriggerUtils.computeFireTimesBetween(
cronTriggerImpl, null, now, calendar.getTime());//这个是重点,一行代码搞定~~
//System.out.println(calendar.getTime());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (int i = 0; i < dates.size(); i++) {
if (i > 4) {//这个是提示的日期个数
break;
}
list.add(dateFormat.format(dates.get(i)).toString());
//System.out.println(dateFormat.format(dates.get(i)));
}
String name[]=new String[list.size()];
for(int i=0,j=list.size();i<j;i++){
name[i]=list.get(i);
}
return Result.ok().put("list", name);
用吧
可以参考参考这个系统的做法:https://item.taobao.com/item.htm?id=543651882796