quartz框架(四)-Job相关内容

Job相关内容

本篇博文,博主主要介绍job相关的内容。

Job

job是业务类需要实现的接口,代表需要被调度框架进行调度的任务。job源码如下所示,从源码中我们可以看到,job接口只有一个excute方法,它的入参只有一个JobExecutionContext,并且允许抛出JobExecutionException异常。


public interface Job {

    void execute(JobExecutionContext context)
        throws JobExecutionException;

}

JobExecutionContext,是任务执行的上下文。比如我们可以从JobDetail中获取到该Job关联到的一些数据,如该Job对应的JobKey,JobDataMap。

JobExecutionException,是job运行中可能会产生的异常。JobRunShell会对该异常进行捕捉,然后由对应的Trigger进行处理。JobRunShell和Trigger,博主会在后面的博文进行介绍。

JobDetail

JobDetail是一个接口,定义了Job相关的一些Get方法。

JobDetailImpl

JobDetailImpl是JobDetail的实现,它的属性如下所示:

  1. jobClass,job的class。
  2. name, job的名称。
  3. group,job的分组。
  4. ...

JobBuilder

JobBuilder是JobDetail对象的构造器,JobBuilder使用了建造者设计模式,它的使用如下所示。

JobDetail job = JobBuilder.newJob(HelloJob.class)
                .withIdentity("job1", "group1")
                .build();

常用注解

这些常用的注解都需要作用在具体的Job类上。

  1. PersistJobDataAfterExecution。在job执行完之后,需要持久化存储任务数据(JobDataMap)。
  2. DisallowConcurrentExecution。不允许允许并发执行该任务。

博主微信公众号

posted on 2022-03-12 18:18  幕友皎敖奔乾  阅读(114)  评论(0编辑  收藏  举报

导航