packagecom.itstudy;import org.quartz.*;importorg.quartz.impl.StdSchedulerFactory;importorg.springframework.boot.CommandLineRunner;importorg.springframework.core.annotation.Order;importorg.springframework.stereotype.Component;importjava.util.concurrent.TimeUnit;
@Component
@Order(value=1)public class MyJobRunner implementsCommandLineRunner {
@Overridepublic void run(String... args) throwsException {
SchedulerFactory schedFact= newStdSchedulerFactory();
Scheduler sched=schedFact.getScheduler();
sched.start();try{
JobDetail job= JobBuilder.newJob(HelloJob.class)
.withIdentity("myJob", "group1")
.usingJobData("jobSays", "Hello World!")
.usingJobData("myFloatValue", 3.141f)
.build();
Trigger trigger=TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(5)
.repeatForever())
.build();
sched.scheduleJob(job, trigger);
}catch(ObjectAlreadyExistsException e) {
System.err.println("发现任务已经在数据库存在了,直接从数据库里运行:" +e.getMessage());//中断执行//sched.interrupt(new JobKey("myJob","group1"));//sched.unscheduleJob(new TriggerKey("myTrigger","group1"));//停止执行//sched.pauseJob(new JobKey("myJob","group1"));
}
TimeUnit.SECONDS.sleep(16);
sched.shutdown(true);
System.out.println("--end--");
}
}