优秀的地址https://blog.csdn.net/noaman_wgs/article/details/80984873
一、介绍
Quartz是一款非常强大的定时任务管理器,支持事务、支持持久化、支持并发,对job任务可以更加进行细粒度的编写,提供context中的内容
,tigger调度器可以对job的执行次数、执行周期以及执行时间都可以进行控制。
二、组件
调度器、scheduler
任务、jobDetail
触发器、trigger (simperTrigger\CronTigger)
// 1、创建调度器Scheduler SchedulerFactory schedulerFactory = new StdSchedulerFactory(); Scheduler scheduler = schedulerFactory.getScheduler(); // 2、创建JobDetail实例,并与PrintWordsJob类绑定(Job执行内容) JobDetail jobDetail = JobBuilder.newJob(PrintWordsJob.class) .withIdentity("job1", "group1").build(); // 3、构建Trigger实例,每隔1s执行一次 Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "triggerGroup1") .startNow()//立即生效 .withSchedule(SimpleScheduleBuilder.simpleSchedule() .withIntervalInSeconds(1)//每隔1s执行一次 .repeatForever()).build();//一直执行 //4、执行 scheduler.scheduleJob(jobDetail, trigger); System.out.println("--------scheduler start ! ------------"); scheduler.start(); //睡眠 TimeUnit.MINUTES.sleep(1); scheduler.shutdown(); System.out.println("--------scheduler shutdown ! ------------");
定义了组,在执行过程中有什么作用吗?
比如,我有200个JOB,我把他们分别归到8个组里面,是不是可以让每个组的所有JOB在独立的线程中运行?