SpringBoot2.6.3怎么集成quartz
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍了SpringBoot2.6.3怎么集成quartz的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot2.6.3怎么集成quartz文章都
千家信息网最后更新 2025年01月31日SpringBoot2.6.3怎么集成quartz
这篇文章主要介绍了SpringBoot2.6.3怎么集成quartz的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot2.6.3怎么集成quartz文章都会有所收获,下面我们一起来看看吧。
quartz使用
quartz启动需要数据库有很多表的支持,这些表的建表脚本可以通过如下方式找到
如何找到quartz的数据库脚本
在这里下载,需要注意的是下载2.2.3这个版本,不知道为什么高版本的反而没有,真是佛了
集成Springboot
代码
yml配置
spring: application: name: demo-excel datasource: url: jdbc:mysql://rm-xxx.mysql.rds.aliyuncs.com:3306/quartz_demo?zeroDateTimeBehavior=convertToNull password: quartz_demo username: quartz_demo driver-class-name: com.mysql.cj.jdbc.Driver name: datasource1 quartz: # quartz任务存储类型:jdbc或memory job-store-type: jdbc # 关闭时等待任务完成 wait-for-jobs-to-complete-on-shutdown: true # 可以覆盖已有的任务 overwrite-existing-jobs: true properties: org: quartz: scheduler: # 调度器实例名称 instanceName: scheduler # 调度器实例ID自动生成 instanceId: AUTO jobStore: class: org.springframework.scheduling.quartz.LocalDataSourceJobStore driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate # quartz相关表前缀 tablePrefix: QRTZ_ useProperties: false threadPool: class: org.quartz.simpl.SimpleThreadPool # 设置并发线程数量 threadCount: 10 # 指定线程优先级 threadPriority: 5 threadsInheritContextClassLoaderOfInitializingThread: trueserver: port: 8190mybatis-plus: mapper-locations: classpath*:/mapperxml/*.xml
实现一个最简单的任务,该任务输出1111
@Componentpublic class TestJob extends QuartzJobBean { @Override protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { // 任务的具体逻辑 System.out.println(1111); }}
配置这个任务的执行计划
@Configurationpublic class QuartzConfig { @Bean public JobDetail jobDetail() { JobDetail jobDetail = JobBuilder.newJob(TestJob.class) .withIdentity("test", "test") .storeDurably() .build(); return jobDetail; } public Trigger trigger() { Trigger trigger = TriggerBuilder.newTrigger() .forJob(jobDetail()) .startNow() .withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ?")) return trigger;}
启动任务会看到控制台每秒钟打印一次1111
进阶
上诉任务是配置在代码中,那么如果我们想把任务配置数据库中,这样我们就可以做一个定时任务的维护页面,可以对定时任务的触发规则修改,及修改删除定时任务应该怎么做呢?
先定义一张存储定时任务的表
-- auto-generated definitioncreate table sys_job( id bigint not null primary key, job_name varchar(64) not null comment '任务名称', job_group varchar(64) not null comment '任务组名', method_name varchar(500) null comment '任务方法', method_params varchar(50) null comment '方法参数', cron_expression varchar(255) null comment 'cron执行表达式', misfire_policy varchar(20) default '3' null comment '计划执行错误策略(1立即执行 2执行一次 3放弃执行)', concurrent char default '1' null comment '是否并发执行(0允许 1禁止)', status char default '0' null comment '状态(0正常 1暂停)', create_by varchar(64) null comment '创建者', create_time datetime null comment '创建时间', update_by varchar(64) null comment '更新者', update_time datetime null comment '更新时间', remark varchar(500) null comment '备注信息') comment '定时任务调度表';
插入一条数据
INSERT INTO quartz_demo.sys_job (id, job_name, job_group, method_name, method_params, cron_expression, misfire_policy, concurrent, status, create_by, create_time, update_by, update_time, remark) VALUES (1, 'testJob2', 'test2', 'exec', null, '* * * * * ?', '2', '1', '0', null, null, null, null, null);
同时定义一张执行结果记录表
-- auto-generated definitioncreate table sys_job_log( job_log_id int auto_increment comment '任务日志ID' primary key, job_name varchar(64) not null comment '任务名称', job_group varchar(64) not null comment '任务组名', method_name varchar(500) null comment '任务方法', method_params varchar(50) null comment '方法参数', job_message varchar(500) null comment '日志信息', status char default '0' null comment '执行状态(0正常 1失败)', exception_info varchar(2000) null comment '异常信息', create_time datetime null comment '创建时间') comment '定时任务调度日志表';
项目启动时读取这张表里的数据放到quartz中执行
由于代码太多了,这边就不列出来代码了,demo已经上传到GitHub,项目基于springboot、mybatisplus。启动加载任务的代码在com.bxoon.service.impl.SysJobServiceImpl
中
关于"SpringBoot2.6.3怎么集成quartz"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"SpringBoot2.6.3怎么集成quartz"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
任务
代码
数据
方法
调度
配置
信息
名称
数据库
日志
时间
知识
内容
参数
实例
版本
状态
篇文章
线程
脚本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
河北叶烂网络技术有限公司
银信科技网络安全营收
服务器中国品牌
服务器安全狗是谁研发的
中图版网络技术
软件开发项目职责
wifi是计算机网络技术吗
消费机数据库按照
软件开发商和运维
java服务器书籍推荐
服务器主机用什么防护软件
济南市dell服务器哪家服务好
高昌服务器
手机备忘录要连接服务器吗
顶板软件开发
vs2015打开数据库连接
服务器硬盘可以装笔记本吗
数据库设计三大范式举例
数据库表的关键字
关系型数据库以什么方式存储数据
龙湖集团软件开发待遇
5号线地铁网络安全设备
网络安全法相关图片
三电系统软件开发
我的世界服务器生存模组
tcu软件开发流程
金华直销软件开发公司电话
现在软件开发哪个语言最吃香
软件开发 产品化思维
要学软件开发有选科限制吗