前台发来请求,后台创建并添加job,scheduler.scheduleJob(jobDetail, trigger); 到调度器
调度器读取,trigger 判断执行周期,
读取jobDetail判读执行内容.
依次创建了scheduler(调度器)、job(任务)、trigger(触发器),其中,job指定了MyJob,trigger保存job的触发执行策略(每隔3s执行一次),scheduler将job和trigger绑定在一起(scheduler.scheduleJob(jobDetail, trigger);
前台 传来任务scheduleJob job,
{JobCron任务执行周期(cron表达式)}
Class<? extends Job> clazz = QuartzJobFactory.class
//jobDetail根据clazz
JobDetail jobDetail = JobBuilder.newJob(clazz).withIdentity(job.getJobName(), job.getJobGroup()).build();
jobDetail.getJobDataMap().put(TaskUtils.SCHEDULE_JOB, job);
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(job.getJobCron());
trigger = TriggerBuilder.newTrigger().withIdentity(job.getJobName(), job.getJobGroup())
.withSchedule(scheduleBuilder).build();
scheduler.scheduleJob(jobDetail, trigger);
//一个jobDetail是一个job,
不同job不可共用trigger
//当调度器开始调度任务
scheduler.start();
会根据触发器定时去开始调度 job中的execute
一般会在execute中
https://blog.csdn.net/wtdask/article/details/78929199
QuartzScheduler