Quartz基本模型表述

本文介绍了Quartz作业调度的关键组件,包括Job、JobDetail、Trigger、Calendar和Scheduler。Job是执行任务的实体,JobDetail存储Job的详细信息,Trigger定义Job的触发时机,Calendar影响Trigger的触发时间,而Scheduler负责调度和执行Job。文章详细阐述了各组件的主要属性和方法,如Job的execute()方法、Trigger的MisfireInstruction和Scheduler的start()、shutdown()等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Job 

JobDetail 

Trigger 

Calendar

Scheduler


Job 

Job: 通过调用execute()方法,表示执行一个任务。Job实例一定要有一个public 无参构造器。实例的成员数据可以放到JobDataMap中。

public interface Job {

   
    void execute(JobExecutionContext context)
        throws JobExecutionException;

}

JobDetail 

JobDetail:传递给定Job实例的详细信息。由JobBuilder创建产生。Quartz没有存储一个实际的Job实例,而是通过对JobDetail的使用,来定义一个Job实例。

public interface JobDetail extends Serializable, Cloneable {

    public JobKey getKey();

 
    public String getDescription();

    
    public Class<? extends Job> getJobClass();

   
    public JobDataMap getJobDataMap();

    
    public boolean isDurable();

    
    public boolean isPersistJobDataAfterExecution();

   
    public boolean isConcurrentExectionDisallowed();

   
    public boolean requestsRecovery();

    public Object clone();
    
    public JobBuilder getJobBuilder();

}

 

public Class<? extends Job> getJobClass(); --- 返回将要执行的Job实例

public JobDataMap getJobDataMap(); --- 返回与Job关联的JobDataMap

public boolean isDurable(); --- 当Job变成“孤儿”时,Job是否应该保持持久化,默认是false

public boolean isPersistJobDataAfterExecution(); --- 返回是否携带 @PersistJobDataAfterExecution注解

public boolean isConcurrentExecutionDisallowed(); --- 返回是否携带@ConcurrentExecution注解

public boolean requestsRecovery(); --- 指示Scheduler如果遇到“recovery”或者“fail-over”情形,Job是否应该重新执行,默认是false

public JobBuilder getJobBuilder(); --- 返回JobBuilder

Trigger 

 Trigger:在一个Scheduler中,Trigger都有一个唯一的TriggerKey。Trigger是一个Job被调度时的机制。Trigge可以通过JobDataMap向Job发送一些数据。

public interface Trigger extends Serializable, Cloneable, Comparable<Trigger> {

    public static final long serialVersionUID = -3904243490805975570L;
    
    public enum TriggerState { NONE, NORMAL, PAUSED, COMPLETE, ERROR, BLOCKED }
    
   
    public enum CompletedExecutionInstruction { NOOP, RE_EXECUTE_JOB, SET_TRIGGER_COMPLETE, DELETE_TRIGGER, 
        SET_ALL_JOB_TRIGGERS_COMPLETE, SET_TRIGGER_ERROR, SET_ALL_JOB_TRIGGERS_ERROR }

    
    public static final int MISFIRE_INSTRUCTION_SMART_POLICY = 0;
    
    
    public static final int MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY = -1;
    
    
    public static final int DEFAULT_PRIORITY = 5;

    public TriggerKey getKey();

    public JobKey getJobKey();
    
    public String getDescription();

    public String getCalendarName();

    public JobDataMap getJobDataMap();

    public int getPriority();

    public boolean mayFireAgain();

    public Date getStartTime();

    public Date getEndTime();

    public Date getNe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值