quartz初体验
Quartz是一个开源作业调度框架。
看了一下官方的例子,一些简单的任务执行非常方便,和使用linux里的contab有点类似。
大致就是在你的Job接口实现类里面,添加一些逻辑到execute()方法。一旦你配置好Job实现类并设定好调度时间表,
quartz就会去准备执行。
直接看代码吧
先解决依赖,它需要的依赖比较少。
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.1</version>
</dependency>
下面是主要代码:
public class App {
private static final int SECONDS = 5; //多少秒执行一次这个任务
public static void main(String[] args) throws SchedulerException {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
//配置任务的描述等
JobDetail job = newJob(MyJob.class)
.withIdentity("job1", "group1")
.withDescription("detail")
.build();
//配置任务的执行规律等等
Trigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(SECONDS)
.repeatForever())
.build();
//组装好任务
scheduler.scheduleJob(job, trigger);
System.out.println("start job");
//启动
scheduler.start();
}
}
任务启动:
/**
* MyJob
*/
public class MyJob implements Job {
public MyJob() {
System.out.println("my job ");
}
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("execute");
}
}
到这里一个简单的quartz任务调度就ok了,这是在一个简单的应用中使用quartz。
它也可以放入web中,这里就不详解了,注册监听器,随着容器启动就可以了,不过要注意的是销毁的时候要记得清理掉定时任务,
来源:oschina
链接:https://my.oschina.net/u/234666/blog/724388