版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/84175630
一 点睛
1 CronTrigger的作用
- 基于日历的作业调度
- 不是像SimpleTrigger那样精确指定时间间隔
- 比SimpleTrigger更常用
2 Cron表达式
用于配置CronTrigger实例
是由7个子表达式组成的字符串,描述了时间表的详细信息。
格式:[秒] [分] [小时] [日] [月] [周] [年]
3 Cron表达是特殊字符意义对应表
4 特殊字符含义
-
L和W可以一起组合使用。
扫描二维码关注公众号,回复: 4135526 查看本文章 -
周字段英文字母不区分大小写,即MON和mon相同
-
利用工具,在线生成 http://cron.qqe2.com/
5 Cron表达式举例
- 2017年内每天10点15分触发一次
0 15 10 ? * * 2017
- 每天的14点整到14点59分55秒,以及18点整到18点59分55秒,每隔5秒触发一次
0/5 * 14,18 * * ?
二 实战——每秒触发一次任务
1 job类
package com.quartz;
import org.quartz.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class HelloJob implements Job{
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
//打印当前执行的时间
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("+++++++++++++++++++++++++++");
System.out.println("Current Exec Time is:" + simpleDateFormat.format(date));
System.out.println("Hello world");
}
}
2 启动类
package com.quartz;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.text.SimpleDateFormat;
import java.util.Date;
public class HelloScheduler {
public static void main( String[] args ) throws SchedulerException {
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("Current Time is:" + simpleDateFormat.format(date));
//创建一个JobDetail实例, 将该实例与hellojob class 绑定
JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
.withIdentity("myJob").build(); //演示传递参数
//每秒触发一次任务
CronTrigger trigger = (CronTrigger) TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "group1")
.withSchedule(
CronScheduleBuilder.cronSchedule("* * * * * ? *")
)
.build();
//创建Schedule实例
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
scheduler.start();
scheduler.scheduleJob(jobDetail, trigger);
}
}
3 执行结果
Current Time is:2018-11-17 10:45:19
+++++++++++++++++++++++++++
Current Exec Time is:2018-11-17 10:45:19
Hello world
+++++++++++++++++++++++++++
Current Exec Time is:2018-11-17 10:45:20
Hello world
+++++++++++++++++++++++++++
Current Exec Time is:2018-11-17 10:45:21
Hello world
+++++++++++++++++++++++++++
Current Exec Time is:2018-11-17 10:45:22
Hello world