SpringBoot2.6.3怎么集成quartz
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章主要介绍了SpringBoot2.6.3怎么集成quartz的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot2.6.3怎么集成quartz文章都
千家信息网最后更新 2025年11月10日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安全错误
数据库的锁怎样保障安全
订餐外卖软件开发
网络技术是校企吗
redis数据库发布
软件开发接项目签什么合同
精灵盛典黎明新服务器
网络安全预警体系
数据库原理自考
编写材料数据库
广州医院poi数据库
加密备忘录软件开发者
昆山塑胶零件加工管理软件开发
n1盒子服务器怎么设置
大班网络安全教育反思
西安培训软件开发机构排名
unix服务器日志怎么看
lol进入服务器显示3秒
马云中国互联网科技
网络安全图标 ppt
网络安全是不是核心期刊
华为视频软件开发
百度手游提示网络安全风险
网络技术宣传视频
计算机网络技术什么时候实习
不买灭绝可以进灭绝服务器吗
内蒙古软件开发费用
山西智能边缘计算服务器价格多少
奋达科技的软件开发能力
黔江警务技术网络安全管理进面
上海系统软件开发价钱
学校网络安全宣传活动倡议书