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。不允许允许并发执行该任务。

博主微信公众号

<img src="https://gitee.com/chenhaogit/blogimages/raw/master/xsj/wzgzh-8cm.jpg" style="float:right"/>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文是根据 Quartz定时器官方文档翻译的,只翻译了第1到第10课,如有翻译不精确的地方,请读者指正,互相学习,...
    ChinaXieShuai阅读 8,589评论 1 19
  • (一)、Job   Job可以理解为就是一个工作任务,代码中就是一个实现了org.quartz.Job或org.q...
    ChienSun阅读 10,507评论 0 10
  • 任务调度简介 1、什么时候需要任务调度 业务场景:1)账单日或者还款日上午 9 点,给每个信用卡客户发送账单通知,...
    vincent浩哥阅读 2,168评论 0 0
  • Quartz是什么 Quartz是一个开源的作业调度包,能够运行在几乎任何java项目中,小到单机应用,大到电商系...
    零度沸腾_yjz阅读 3,191评论 0 9
  • 什么是定时任务调度 基于给定的时间点,给定的时间间隔或者给定的执行次数自动完成执行任务 在Java中的定时调度工具...
    Hey_Shaw阅读 2,590评论 2 1