初识Quartz之第一个Quartz实例
转:
初识Quartz之第一个Quartz实例
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/carson0408/article/details/79868908
根据前面的博文对Quartz的三大组件:Job、Trigger、Scheduler分别进行了介绍,本文则利用创建三大组件创建一个Quartz的实例,来了解Quartz框架的工作流程。
1.创建项目
首先利用eclipse建立一个Maven项目,选择图中所示的Filter选项。并继续完成命名等,创建一个项目。
创建完成后,项目如图所示:
2.pom文件
根据Quartz框架所需要的jar包,将其写到pom文件中,便于统一生成,pom配置文件如下所示:
-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
<modelVersion>4.0.0</modelVersion>
-
-
<groupId>com.carson</groupId>
-
<artifactId>FirstQuarz</artifactId>
-
<version>0.0.1-SNAPSHOT</version>
-
<packaging>jar</packaging>
-
-
<name>FirstQuarz</name>
-
<url>http://maven.apache.org</url>
-
-
<properties>
-
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-
</properties>
-
-
<dependencies>
-
<dependency>
-
<groupId>junit</groupId>
-
<artifactId>junit</artifactId>
-
<version>3.8.1</version>
-
<scope>test</scope>
-
</dependency>
-
<dependency>
-
<groupId>org.quartz-scheduler</groupId>
-
<artifactId>quartz</artifactId>
-
<version>2.2.3</version>
-
</dependency>
-
</dependencies>
-
</project>
3.Job实现类
三大组件之一就是Job组件,其中需要实现Job接口,而Job接口中只有一个execute()方法,需要实现execute()方法,具体如下所示:
-
import java.text.SimpleDateFormat;
-
import java.util.Date;
-
-
import org.quartz.Job;
-
import org.quartz.JobExecutionContext;
-
import org.quartz.JobExecutionException;
-
-
public class MyJob implements Job {
-
-
public void execute(JobExecutionContext context) throws JobExecutionException {
-
//打印当前的执行时间,格式为yyyy-MM-dd HH:mm:ss
-
// 编写具体的业务逻辑。
-
Date date=new Date();
-
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//规范格式
-
System.out.println("当前时间为:"+sf.format(date));
-
System.out.println("Hello World!");
-
}
-
-
}
4.Scheduler类
该类用于作任务调度的,首先将Job实现类绑定到JobDetail对象中,然后创建Trigger对象,最后创建Scheduler对象并将JobDetail对象和Trigger对象绑定到Scheduler对象中。通过以上步骤,实现调度器对Job任务的调度,并通过触发器来设置任务触发始末以及频率。
-
import java.text.SimpleDateFormat;
-
import java.util.Date;
-
-
import org.quartz.JobBuilder;
-
import org.quartz.JobDetail;
-
import org.quartz.Scheduler;
-
import org.quartz.SchedulerException;
-
import org.quartz.SchedulerFactory;
-
import org.quartz.SimpleScheduleBuilder;
-
import org.quartz.Trigger;
-
import org.quartz.TriggerBuilder;
-
import org.quartz.impl.StdSchedulerFactory;
-
-
public class MyScheduler {
-
public static void main(String[] args) throws SchedulerException
-
{
-
//创建一个JobDetail实例,将该实例与MyJob Class绑定。
-
JobDetail jobDetail=JobBuilder.newJob(MyJob.class).withIdentity("myJob", "group1").build();
-
//创建一个Trigger实例,定义该Job立即执行,并且每隔两秒钟重复一次,
-
Trigger trigger=TriggerBuilder
-
.newTrigger()
-
.withIdentity("myTrigger","group1")
-
.startNow()
-
.withSchedule(SimpleScheduleBuilder
-
.simpleSchedule()
-
.withIntervalInSeconds(5)
-
.repeatForever())
-
.build();
-
SchedulerFactory sf=new StdSchedulerFactory();
-
Scheduler scheduler=sf.getScheduler();
-
scheduler.start();
-
Date date=new Date();
-
SimpleDateFormat sfd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//规范格式
-
//System.out.println("当前时间为:"+sfd.format(date));
-
scheduler.scheduleJob(jobDetail, trigger);
-
}
-
}
最后运行程序,得到如下结果:
-
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
-
SLF4J: Defaulting to no-operation (NOP) logger implementation
-
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
-
当前时间为:2018-04-09 17:04:55
-
Hello World!
-
当前时间为:2018-04-09 17:04:59
-
Hello World!
-
当前时间为:2018-04-09 17:05:04
-
Hello World!
-
当前时间为:2018-04-09 17:05:09
-
Hello World!
-
当前时间为:2018-04-09 17:05:14
-
Hello World!
-
当前时间为:2018-04-09 17:05:19
-
Hello World!
-
当前时间为:2018-04-09 17:05:24
-
Hello World!
-
当前时间为:2018-04-09 17:05:29
-
Hello World!
-
当前时间为:2018-04-09 17:05:34
-
Hello World!
-
当前时间为:2018-04-09 17:05:39
-
Hello World!
-
当前时间为:2018-04-09 17:05:44
-
Hello World!
-
当前时间为:2018-04-09 17:05:49
-
Hello World!
-
。。。。。。