自学内容网 自学内容网

定时框架Quartz的快速使用教程

目录

一、什么是Quartz框架?

二、快速使用

1、引入依赖

2、实现Job接口,编写任务代码

3、 定时任务注册到调度器,并启动调度器


一、什么是Quartz框架?

        Quartz由OpenSymphony开源组织开发,是一个全功能的作业调度框架,可以集成到J2EE和J2SE应用中,也可以独立使用。通过这些组件的协同工作,Quartz能够灵活地管理和执行定时任务。

从上面的架构图可以得知,Quartz的核心组件主要如下: 

  • 任务Job:是个接口,我们的任务类需要实现该接口,并且要重写execute()方法,我们的任务就是要在这个方法里面来写。通过这种方式,我们可以确保当调度器触发任务时,execute()方法会被调用并执行我们预先定义的任务逻辑。
  • 触发器Trigger :触发器定义了作业的执行时间规则,有两种主要类型:SimpleTrigger和CronTrigger。
  • 调度器Scheduler :作为Quartz的核心组件,调度器负责根据触发器的时间规则来触发和执行作业。它管理着作业和触发器的注册,确保任务按照预定计划执行。
  • JobDetail:JobDetail的主要作用是将任务与其相关的元数据进行绑定,例如任务的名称、组名、任务类等。这些信息可以帮助调度器在触发器触发时找到正确的任务实例并执行它。此外,JobDetail还可以携带一些额外的属性,这些属性可以在任务执行期间被访问和使用。

这三个核心类协同工作,构成了Quartz框架的基础,使其能够灵活、高效地管理和执行定时任务。

二、快速使用

1、引入依赖

    <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.3.2</version>
    </dependency>

2、实现Job接口,编写任务代码

     创建一个类来实现要执行的任务。这个类需要实现Quartz的Job接口,并且需要实现execute()方法。这个方法将在定时任务触发时被调用。


public class TestJob  implements Job {

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
                 System.out.println("定时采集服务器A的指标数据");
    }

}
3、 定时任务注册到调度器,并启动调度器

     该步骤的过程主要就是创建调度器、创建JobDetail和触发器、将JobDetail和触发器注册到调度器、最后启动调度器。


public class TestQuartz {

    public static void main(String[] args) throws Exception {
        //创建调度器
       Scheduler sched = new StdSchedulerFactory().getScheduler();
        //创建JobDetail和触发器
        JobDetail job = newJob(TestJob.class)
                .withIdentity("myJob", "zhuoye")
                .build();
        Trigger trigger = newTrigger()
                .withIdentity("myTrigger", "zhuoye")
                .startNow()
                .withSchedule(simpleSchedule()
                        .withIntervalInSeconds(10)
                        .repeatForever())
                .build();
        //将任务和触发器注册到调度器中
        sched.scheduleJob(job, trigger);
        //启动调度器
        sched.start();
    }
}

       总之,使用Quartz框架完成定时任务的过程主要包括定义任务、定义触发器和定义调度器。首先,您需要定义一个JobDetail来描述任务的详细信息,包括任务的名称、组名以及实现任务逻辑的类。接着,创建一个Trigger实例,它定义了任务何时执行的规则,可以选择使用SimpleTriggerCronTrigger,具体取决于任务的调度需求。然后,使用SchedulerscheduleJob方法将任务和触发器注册到调度器中,使调度器能够在触发器指定的时间执行任务。最后,启动调度器以开始任务的执行


原文地址:https://blog.csdn.net/weixin_50348837/article/details/142686748

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!