Java 定时任务 使用Quartz框架实现
## Java 定时任务 Quartz框架实现
1、在pom.xml中配置Quartz依赖
<!--quartz-->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.0</version>
</dependency>
<!--调度器核心包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.4.RELEASE</version>
</dependency>
2、Job定时任务的实现
package main.java.quartz;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class HelloWorldQuartzJob implements Job {
/**
* 定时任务:当所定时间结束后,要执行的方法。
* @param jobExecutionContext
*/
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
String strTime = new SimpleDateFormat("HH-mm-ss").format(new Date());//开始时间
//执行任务代码块
System.out.println(strTime + ":Helloword");
}
}
3、任务的调度,包括所隔时间的配置
package main.java.application;
import main.java.quartz.HelloWorldQuartzJob;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
public class MyScheduler {
public static void main(String[] args) throws SchedulerException {
//创建调度器Schedule
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
//创建JobDetail实例,并与HelloWordJob类绑定
JobDetail jobDetail = JobBuilder.newJob(HelloWorldQuartzJob.class)
.withIdentity("job1","jobGroup1").build();
/*创建触发器Trigger实例(立即执行,5秒后执行一次);withRepeatCount(1):5秒后执行,只执行一次
RepeatForever:指定触发器将无限期重复,每隔5秒都执行一次*/
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1","triggerGroup1")
.startNow()
.withSchedule( SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(5).withRepeatCount(1) )//5秒后执行一次
.build();
//开始执行
scheduler.scheduleJob(jobDetail,trigger);
scheduler.start();
}
}
4、控制台的打印结果
间隔了5秒后打印的时间


浙公网安备 33010602011771号