我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringBoot2.6.3怎么集成quartz

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SpringBoot2.6.3怎么集成quartz

这篇文章主要介绍了SpringBoot2.6.3怎么集成quartz的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot2.6.3怎么集成quartz文章都会有所收获,下面我们一起来看看吧。

quartz使用

quartz启动需要数据库有很多表的支持,这些表的建表脚本可以通过如下方式找到

如何找到quartz的数据库脚本
在这里下载,需要注意的是下载2.2.3这个版本,不知道为什么高版本的反而没有,真是佛了

SpringBoot2.6.3怎么集成quartz

集成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”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SpringBoot2.6.3怎么集成quartz

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SpringBoot2.6.3怎么集成quartz

这篇文章主要介绍了SpringBoot2.6.3怎么集成quartz的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot2.6.3怎么集成quartz文章都会有所收获,下面我们一起来看看吧。qua
2023-06-29

Quartz与Spring集成的方法是什么

要将Quartz与Spring集成,可以按照以下步骤进行操作:1. 添加Quartz和Spring的依赖:在项目的pom.xml文件中添加Quartz和Spring的依赖。2. 创建Quartz配置文件:在Spring的配置文件中,可以创建
2023-10-20

quartz集群怎么防止并发

要防止并发,可以考虑以下几种方法来保护Quartz集群:1. 使用数据库锁:Quartz可以使用数据库锁来保护并发访问。通过配置数据库锁,可以确保同一时间只有一个实例可以访问Quartz数据库。这样可以防止多个实例同时处理相同的任务。2.
2023-10-20

quartz集群任务调度怎么应用

Quartz是一个开源的Java任务调度框架,可以用于在一个集群中调度任务。下面是使用Quartz集群任务调度的一般步骤:1. 配置Quartz集群:首先需要在集群中的每个节点上配置Quartz。每个节点需要有自己的数据库用来存储任务调度相
2023-10-20

SpringBoot集成quartz实现定时任务详解

最为常用定时任务框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不仅支持单实例方式还支持分布式方式。本文主要介绍Quartz,基础的Quartz的集成案例本,以及实现基于数据库的分布式任务管理和控制job生命周期
2022-11-13

Quartz集群怎么配置和应用

配置和应用Quartz集群需要以下步骤:1. 配置数据库:Quartz集群需要使用数据库来存储调度信息和任务状态。你可以使用任何支持JDBC的数据库,如MySQL、Oracle等。创建一个数据库,并配置好数据库连接信息。2. 配置Quart
2023-08-16

quartz集群和非集群有什么区别

Quartz是一个开源的作业调度框架,用于在Java应用程序中调度任务。Quartz集群和非集群的区别主要体现在以下几个方面:1. 高可用性:Quartz集群可以提供高可用性,即使其中一个节点出现故障,其他节点仍然可以继续工作。而非集群模式
2023-09-18

可视化定时任务quartz集成解析全过程

在开发中有很多定时任务都不是写死的而是可以人为配置并且写到数据库中的,下面这篇文章主要给大家介绍了关于可视化定时任务quartz集成解析的相关资料,需要的朋友可以参考下
2022-11-13

quartz集群配置的方法是什么

配置Quartz集群有以下几个步骤:1. 配置数据库:首先,需要准备一个数据库来存储Quartz的调度信息。可以使用MySQL、Oracle等关系型数据库。2. 配置数据源:在应用程序的配置文件中,配置数据源连接信息,以便Quartz能够连
2023-09-18

java quartz怎么使用

使用Java Quartz有以下步骤:1. 导入Quartz依赖库,例如在Maven项目中,在pom.xml文件中添加以下依赖:```xmlorg.quartz-schedulerquartz2.3.2```2. 创建一个Job类,实现`o
2023-08-31

Quartz在.NET中怎么使用

本篇内容主要讲解“Quartz在.NET中怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Quartz在.NET中怎么使用”吧!一、背景例如需要在某年某月去将数据库的某个数据更新或者同步,
2023-06-25

eclipse怎么集成github

Eclipse是一个流行的Java集成开发环境,可以帮助开发人员高效地创建和管理Java应用程序。Github是一个流行的社交编程平台,提供代码托管、版本控制和协作功能。在本文中,我们将介绍将Eclipse和Github集成的步骤。步骤1:
2023-10-22

Quartz注解方式怎么配置

本篇内容主要讲解“Quartz注解方式怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Quartz注解方式怎么配置”吧!一:目录结构二:统一配置文件context-datasource.p
2023-06-04

Java Quartz触发器怎么配置

在Java中使用Quartz触发器进行配置,需要进行以下步骤:1. 创建一个调度器(Scheduler)对象:可以使用`StdSchedulerFactory`的`getDefaultScheduler`方法获取默认的调度器对象。2. 创建
2023-08-14

quartz集群防止并发的方法是什么

Quartz集群的目的是确保在多个节点上调度任务时的高可用性和负载均衡。为了防止并发问题,可以采取以下方法:1. 数据库锁定:在Quartz集群中,可以通过数据库的行级锁来控制并发访问。当一个节点开始执行任务时,会锁定任务所在的行,其他节点
2023-09-18

Spring boot怎么集成MQTT

这篇“Spring boot怎么集成MQTT”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring boot怎么集成MQ
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录