1.导入Quartz的依赖
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
2.创建定时任务继承job类
public class HelloQuartz implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
String format = new SimpleDateFormat("yy-MM-dd HH-mm-ss").format(new Date());
System.out.println("炸弹爆炸,爆炸时间为:"+format);
}
}
3.创建执行类
1.调度器Scheduler的创建;2.JobDetail实例的创建;3.Trigger实例的创建;
public class MySchedule {
public static void main(String[] args) throws SchedulerException, InterruptedException {
//1.创建调度器Scheduler
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
//2.创建JobDetail实例,并绑定执行类
JobDetail build = JobBuilder.newJob(HelloQuartz.class).withIdentity("Quartz1", "QuartzGroup1").build();
//3.构建Trigger实例,
//方式一:(不推荐)
// SimpleTrigger build1 = TriggerBuilder.newTrigger().withIdentity("Trigger1", "QuartzTrigger1")
// .startNow()
// .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(1).repeatForever())
// .build();
//方式二,自定义corn表达式:(常用)
CronTrigger build1 = TriggerBuilder.newTrigger().withIdentity("Trigger1", "QuartzTrigger1")
.startNow() //corn表达式生成地址:https://cron.qqe2.com/
.withSchedule(CronScheduleBuilder.cronSchedule("5,15,25,35,45,55 * * * * ? *"))
.build();
//4.执行Quartz
scheduler.scheduleJob(build, build1);
scheduler.start();
//5.利用TimeUnit实现延时操作
TimeUnit.SECONDS.sleep(30);
//6.关闭定时任务
scheduler.shutdown();
System.out.println("定时任务结束!");
}
}