quartz定时任务配置说明,quarter 定时任务
00-1010定时任务用户指南1、依赖性介绍2、快速入门3、定时任务手动触发4、带参数的任务5、任务并发6、持久总结
00-1010如果你想做定时任务,有高可用性要求,或者只是想快速轻松上手,那么选择它是对的。
计时模块是Quartz框架的进一步封装,使用起来更加简单。
目录
依赖关系groupIdxin.altitude.cms/groupId artifactIducode-CMS-quartz/artifactId版本1 . 5 . 4 . 1/版本/依赖关系
00-1010实现org.quartz.Job接口;使用注释CronExp添加任务的调度策略;使用注释组件将任务注入到容器中。
项目启动时,预定任务处于监控和运行状态。
@ Component @ DisallowConcurrentExecution @ cronex(cron= 0/5 * * * *?)公共类演示作业实现job { @ override public void execute(jobexecutioncontext){ system . out . println( task 1: local datetime . now());}}
00-1010定时任务不仅以现有频率周期性运行,还具有通过界面手动触发的能力。
调用以下接口手动触发任务ID号为jobId的任务。
3358 localhost 33608080/CMS-API/quartz/job/{ jobID }如果需要手动触发一个调度任务,那么任务ID需要唯一且已知,因此需要在编写调度任务时手动指定。
@CronExp(id=1,cron=0/5 * * * *?)可以通过注释CronExp的id属性来指定任务ID。不指定的话会用一个随机ID,不满足已知条件,所以不能手动触发。
00-1010虽然大部分任务不需要注入参数,但还是有少数场景需要向调度任务注入参数。
void Execute(JobExecutionContext){/*如果调用任务时传入参数,可以得到*/mapstring,objectdata map=context . getmergedjobdatamap();/*比如从Map中获取一个键值对,一般来说参数是基本数据类型*/Object key=data Map . get( key );system . out . println( task 2: local datetime . now() : key);}编写定时任务时,可以从JobExecutionContext对象中解析一个Map,从而完成参数的注入。
http://localhost :8080/CMS-API/quartz/job/1?Key=a上面的http调用是指手动触发任务ID为[1]的任务,并给它传递一个参数,参数为[key],值为[a]。
00-1010此框架不支持任务并发。换句话说,并发对于调度任务是不利的,所以需要手动禁止。
需要注意的是,Quartz的并发是指在任务执行时间超过任务调度周期,且前一个任务未完成的情况下,是否执行新任务。
一般来说,需要表明禁止并发,在task类上添加DisallowConcurrentExecution注释可以禁止任务并发。
00-1010如果计划任务有高可用性要求,则需要持久化。在计划任务数据被持久化到数据库中之后,它支持多个应用。定时任务持久化多节点部署后,集群中单个节点的故障不会影响定时任务的执行。
定时任务持久化,只需要修改yml文件配置就可以达到目的,不需要修改代码。一般来说,Mysql是作为一个持久容器来使用的。
spring : Quartz : properties : org . Quartz . job store . isclustered : true org . Quartz . job store . class : org . Quartz . impl . jdbcjobstore . jdbcjobstore . driverdelegateclass : org . Quartz . impl . jdbcjobstore . stdjdbcdelegate org . Quartz . jobstore . data source : qzDS org . Quartz . datasou rce . qzDSquartz . data source . qzds . user 3360 root org . quartz . data source . qzds . password 3360 123456除了修改主机、端口、数据库名、用户名和密码五个参数外,其余参数可以使用默认值。
配置数据库连接后,使用SQL脚本初始化数据库。
00-1010就这样。这里介绍了这篇关于Quartz高可用性定时任务的快速文章。有关Quartz高可用性定时任务的更多信息,请搜索以前关于流行IT的文章或继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。