quartz初体验java
Quartz是一个开源做业调度框架。linux
看了一下官方的例子,一些简单的任务执行很是方便,和使用linux里的contab有点相似。web
大体就是在你的Job接口实现类里面,添加一些逻辑到execute()方法。一旦你配置好Job实现类并设定好调度时间表,
quartz就会去准备执行。框架
直接看代码吧ui
先解决依赖,它须要的依赖比较少。spa
<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>
下面是主要代码:code
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(); } }
任务启动:xml
/** * 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中,这里就不详解了,注册监听器,随着容器启动就能够了,不过要注意的是销毁的时候要记得清理掉定时任务,接口