SpringBoot2.6.3怎么集成quartz
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章主要介绍了SpringBoot2.6.3怎么集成quartz的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot2.6.3怎么集成quartz文章都
千家信息网最后更新 2024年11月26日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安全错误
数据库的锁怎样保障安全
广州亚卓网络技术有限公司
信息化软件开发应用
数据库 排除
hislis管理系统软件开发
确保强化了系统安全和网络安全
云服务器推荐
软件开发有进项吗
苹果网络安全框架
网络安全的测量
上海飞旗网络技术公司如何
国际服最流畅服务器
mc服务器必备小玩意
十四五网络安全发展思路
数据库查询有哪些算法
电力网络安全防范措施总结
涉密网络安全管理规定
网络安全与服务业
软件开发和设计系统需要学什么
服务器管理与配置论文摘要
软件开发公司营销推广界面
数据库的数据组织方式是什么
电脑方舟加入服务器就闪退怎么办
软件开发工作的基础
在线教育软件开发多少钱
数据库学生宿舍管理系统
厦门华若特网络技术有限公司
cad 软件开发语言
软件实施和软件开发和软件测试
第十八届网络安全知识普及赛
linux服务器网卡配置