Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵 活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,EJB作业预构 建,JavaMail及其它,支持cron-like表达式等等。
Java实现
Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
Job
具体业务
public class PrintWordsJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("HHmmss"));
System.out.println("execute schduled job, print current time="+time);
}
}
Scheduler
调度器
/**
* scheduler
*/
StdSchedulerFactory stdSchedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = stdSchedulerFactory.getScheduler();
JobBuilder,绑定业务类
/**
* jobDetail,bind job class
*/
JobDetail jobDetail = JobBuilder.newJob(PrintWordsJob.class)
.build();
Trigger
/**
* trigger
*/
SimpleTrigger trigger = TriggerBuilder.newTrigger()
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(2)
.repeatForever()).build();
Execute
/**
* execute
*/
scheduler.scheduleJob(jobDetail, trigger);
System.out.println("scheduler.start");
scheduler.start();
Shutdown
/**
* shutdown
*/
TimeUnit.MINUTES.sleep(1);
System.out.println("scheduler.shutdown");
scheduler.shutdown();
控制台