Quartz是一个开源的做业调度
框架,它彻底由Java
写成。它有不少特征,如:数据库支持,集群,插件,EJB做业预构 建,JavaMail及其它,支持cron-like表达式
等等。该项目已经被 Terracotta
收购。git
Quartz API关键几个接口以下:github
接口类对象:spring
用于建立示例的对象:数据库
说多少也不如直接运行代码出结果来的实际,那就动手了。springboot
pom.xml 配置以下:框架
<!-- quartz --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>5.0.7.RELEASE</version> </dependency>
job类maven
@Data public class HelloJob implements Job { public void execute(JobExecutionContext context) throws JobExecutionException { JobDataMap jobDataMap = context.getJobDetail().getJobDataMap(); String name = jobDataMap.get("name").toString(); String characteristic = jobDataMap.get("characteristic").toString(); System.out.println("name : " + name); System.out.println("characteristic : " + characteristic); } }
QuartzTest类ide
public class QuartzTest { public static void main(String[] args) throws SchedulerException, ParseException { SchedulerFactory schedulerFactory = new StdSchedulerFactory(); Scheduler scheduler = schedulerFactory.getScheduler(); scheduler.start(); // 定义job,绑定咱们的定时任务 JobDetail job2 = newJob(HelloJob.class) .usingJobData("name", "张三") .usingJobData("characteristic", "帅3") .build(); // 执行任务,用定义好的触发器 和 任务 scheduler.scheduleJob(job2, getTrigger6()); } /** * 触发器当即触发,而后每隔2秒 触发一次,22:55:00: */ private static Trigger getTrigger1() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //定义一个任务触发器 return newTrigger() .withIdentity("job2", "group2") //定点触发 //.startAt(sdf.parse("2018-09-27 10:27:00")) // 五秒钟后触发 .startAt(DateBuilder.futureDate(5, DateBuilder.IntervalUnit.SECOND)) .withSchedule(simpleSchedule() .withIntervalInSeconds(2) .repeatForever()) //.withRepeatCount(0)) .endAt(DateBuilder.dateOf(22, 55, 0)) .build(); }
运行测试类,结果以下:(恭喜你,成功,接下来,就是深刻学习了)学习
10:29:11.012 [MyOneQuartzScheduler_Worker-1] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.6da64b5bd2ee-f1562ba3-b8fa-436d-848e-d6e8ea39c26d name : 张三 characteristic : 帅3
github地址<br/>测试
quartz中文文档<br>