项目结构:
maven依赖:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.0</version>
</dependency>
核心代码:
public class PrintWordsJob implements Job{
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
String printTime = new SimpleDateFormat("yy-MM-dd HH-mm-ss").format(new Date());
System.out.println("PrintWordsJob start at:" + printTime +",prints: Hello Job-" + new Random().nextInt(100));
}
}
public class Myscheduler {
public static void main(String[] args) throws SchedulerException, InterruptedException {
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
JobDetail jobDetail = JobBuilder.newJob(PrintWordsJob.class)
.withIdentity("job1","groupq")
.build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "triggerGroup1")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(1)
.repeatForever())
.build();
scheduler.scheduleJob(jobDetail, trigger);
System.out.println("---------scheduler start-----------");
scheduler.start();
TimeUnit.MINUTES.sleep(1);
scheduler.shutdown();
System.out.println("---------scheduler shutdown-----------");
}
}
输出结果:
总结:
trigger:触发器,多久触发一次
job+jobDetail:jute要执行的业务
schedule:将trigger和job结合起来
引用: