- 1.首先创建一个作业(Job) 代码如下:
package quartz.yl;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class HelloQuartz implements Job{
private SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println(sdf.format(new Date())+" hello Quartz");
}
}
- 2.创建一个调度器(Schedule) 来调度作业。代码如下:
package quartz.yl;
import java.text.SimpleDateFormat;
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
public class HelloQuartzTest {
// @Test
public void test1() throws SchedulerException, InterruptedException {
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//创建调度器工厂
SchedulerFactory scheFac = new StdSchedulerFactory();
//获取调度器
Scheduler sched=scheFac.getScheduler();
//获取job实例
JobDetail job = JobBuilder.newJob(HelloQuartz.class).withIdentity("job1","group1").build();
Trigger trigger =TriggerBuilder.newTrigger().withIdentity("trriger1","group1")
.withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ? "))
.startNow().build();
sched.scheduleJob(job, trigger);
//启动调度
sched.start();
Thread.sleep(65L * 1000L);
sched.shutdown();
System.out.println(job.getKey() +" "+trigger.getKey()+ " 定时任务结束: ");
}
public static void main(String[] args) throws SchedulerException, InterruptedException {
HelloQuartzTest h =new HelloQuartzTest();
h.test1();
}
}
运行结果如下:
上述代码中需要的jar 可以下载jar包 ,也可以用maven 下载。如果用maven,pom文件参考下面代码:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<springversion>4.3.7.RELEASE</springversion>
<quartz.version>2.2.1</quartz.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${springversion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springversion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${springversion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${springversion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springversion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${springversion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${springversion}</version>
</dependency>
<!-- sheduler -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>${quartz.version}</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
</dependencies>