quartz 参数说明

JobDetail

JobDetail 用来保存我们作业的详细信息。一个JobDetail可以有多个Trigger,但是一个Trigger只能对应一个JobDetail。下面是JobDetail的一些常用的属性和含义


参数名

类型

备注

name

String

任务的名称,必须

group

String

任务所在组,默认为DEFAULT

jobClass

Class

任务的实现类,必须

description

String

描述

jobDataMap

JobDataMap

用来给作业提供数据支持的数据结构

volatility

Boolean

重启应用之后是否删除任务的相关信息,默认false

durability

Boolean

任务完成之后是否依然保留到数据库,默认false

shouldRecover

Boolean

应用重启之后时候忽略过期任务,默认false

jobListeners

Set

监听器

如:

<bean id="myjob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
    	<property name="jobClass" value="com.tgb.lk.demo.quartz.MyJob1" />
		<property name="durability" value="true" />
	</bean>

JobDataMap

这是一个给作业提供数据支持的数据结构,使用方法和java.util.Map一样,非常方便。当一个作业被分配给调度器时,JobDataMap实例就随之生成。

Job有一个StatefulJob子接口,代表有状态的任务,该接口是一个没有方法的标签接口,其目的是让Quartz知道任务的类型,以便采用不同的执行方案。无状态任务在执行时拥有自己的JobDataMap拷贝,对JobDataMap的更改不会影响下次的执行。而有状态任务共享共享同一个JobDataMap实例,每次任务执行对JobDataMap所做的更改会保存下来,后面的执行可以看到这个更改,也即每次执行任务后都会对后面的执行发生影响。

正因为这个原因,无状态的Job可以并发执行,而有状态的StatefulJob不能并发执行,这意味着如果前次的StatefulJob还没有执行完毕,下一次的任务将阻塞等待,直到前次任务执行完毕。有状态任务比无状态任务需要考虑更多的因素,程序往往拥有更高的复杂度,因此除非必要,应该尽量使用无状态的Job。

如果Quartz使用了数据库持久化任务调度信息,无状态的JobDataMap仅会在Scheduler注册任务时保持一次,而有状态任务对应的JobDataMap在每次执行任务后都会进行保存。

JobDataMap实例也可以与一个触发器相关联。这种情况下,对于同一作业的不同触发器,我们可以在JobDataMap中添加不同的数据,以便作业在不同时间执行时能够提供更为灵活的数据支持(学校上午放眼保健操录音第一版,下午放第二版)。

不管是有状态还是无状态的任务,在任务执行期间对Trigger的JobDataMap所做的更改都不会进行持久,也即不会对下次的执行产生影响。

触发器(Trigger)

Trigger是一个抽象类,Quartz提供了两个比较常用的触发器SimpleTrigger和CronTrigger。它们都是Trigger的子类

SimpleTrigger

这是一个简单的触发器,通过它我们可以定义触发的时间,并选择性的设定重复的次数和间隔时间。它有以下常用的属性

参数名

参数类型

备注

name 

String

触发器名称

group 

String

触发器组名称

repeatCount 

int

重复次数,注意:如果为0表示不执行,-1表示不限制次数(直到过期),默认为0

repeatInterval 

long

间隔时间,注意:是以毫秒为单位

startTime 

Date

开始时间,默认当前时间

endTime 

Date

过期时间,默认一直执行(直到执行次数已达到repeatCount)


CronTrigger

这个触发器的功能非常强大,而且非常灵活,但需要掌握有关的Cron表达式知识

参数名

参数类型

备注

name 

String

触发器名称

group 

String

触发器组名称

cronEx 

CronExpression

规则表达式

startTime 

Date

开始时间,默认当前时间

endTime 

Date

过期时间,默认一直执行(直到执行次数已达到repeatCount)

 


  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【项目介绍】 基于SpringBoot+Quartz的轻量级分布式定时任务调度系统源码+项目说明+sql数据库.zip 主要技术选型 1、后端: - SpringBoot 2.6.11 - Quartz 2.3.2 - Mybatis-Plus 3.5.3.2 - Httpclient 4.5.13 2、前端: - Layui 2.8.11 - jQuery 2.1.4 ## 运行环境 - Jdk8 - MySQL5.6+ ## 运行启动教程 1. 新建`MySQL`数据库并导入`sql`文件夹下的数据库脚本 2. 修改配置文件中`application.yml`中数据库连接信息 3. 运行启动类`TinyJobApplication`,即可正常启动项目 4. 管理后台登录地址:`http://localhost:9009` 账户密码 `admin / 123456` ## 平台功能 1、项目管理 - 增加项目维度,方便对主机信息和定时任务进行归类管理 2、主机管理 - 维护主机地址,一个主机信息可维护多个主机地址用于负载均衡,如 `http://172.89.56.117:8899`, `http://172.89.56.118:8899` - 支持多种路由负载均衡策略(`FIRST`,`LAST`,`ROUND`,`RANDOM`,`LFU`,`LRU`),并提供标准化接口,可根据需要自行扩展 - FIRST:第一个,固定选择第一个主机地址 - LAST:最后一个,固定选择最后一个主机地址 - ROUND:轮询,按顺序分别选择每一个主机地址 - RANDOM:随机,随机选择所有可用的主机地址 - LFU:最不经常使用,使用频率最低的主机地址优先被选举 - LRU:最近最久未使用,最久未使用的主机地址优先被选举 3、任务管理 - 在线配置定时任务,包括新增任务、修改任务、删除任务、手动执行一次,以及实时启动/停止任务等功能,定时任务包括以下属性: - 所属项目:对应所属项目 - 任务主机:对应主机信息 - 任务名称:任务的名称 - 任务组:任务的分组,只能由英文数字和下划线组成 - 触发器类型:支持CRON和SIMPLE两种触发器(SIMPLE触发器即为按照固定秒数间隔执行的触发器) - Cron执行表达式:按照CRON内容,触发任务调度 - 间隔时间(秒):按照固定的间隔时间,周期性触发 - 请求类型:`GET`,`POST`,`POST_JSON` - 请求路径:将和主机地址拼接,作为最终的任务请求地址 - 请求参数:任务的请求参数信息,以标准JSON的格式配置 - 请求头:任务的请求头信息,以标准JSON的格式配置 - 主机路由策略:FIRST、LAST、ROUND、RANDOM等,详见主机管理里面的介绍 - 调度过期策略: - 立即执行:调度过期后,将之前错过的未执行的全部执行 - 执行一次:调度过期后,执行一次,并从当前时间开始重新计算下次触发时间; - 放弃执行(默认):调度过期后,忽略过期的任务,从当前时间开始重新计算下次触发时间; - 是否并发执行:单机串行或者并发执行 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通。 2、项目适用人群:计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等计算机相关专业的在校学生、专业老师、行业内企业员工下载使用。 3、项目可用于:项目本身具有较高的学习借鉴价值,不仅适用于小白学习进阶,也可用于专业人员二次开发。当然也可作为毕设项目、课程设计、课程大作业、初期项目立项演示等。 4、如果基础还行,或者热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载使用,相互学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lzj0470

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值