Quartz初体验

给你一囗甜甜゛ 提交于 2019-11-29 09:52:37

    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中,这里就不详解了,注册监听器,随着容器启动就可以了,不过要注意的是销毁的时候要记得清理掉定时任务,

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!