返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBoot2.6.3集成quartz的方式
  • 728
分享到

SpringBoot2.6.3集成quartz的方式

2024-04-02 19:04:59 728人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

quartz使用 quartz启动需要数据库有很多表的支持,这些表的建表脚本可以通过如下方式找到 如何找到quartz的数据库脚本在这里下载,需要注意的是下载2.2.3这个版本,不知

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: true
server:
  port: 8190
mybatis-plus:
  mapper-locations: classpath*:/mapperxml/*.xml

实现一个最简单的任务,该任务输出1111

@Component
public class TestJob extends QuartzJobBean {

    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext)
            throws JobExecutionException {
        // 任务的具体逻辑
        System.out.println(1111);
    }
}

配置这个任务的执行计划

@Configuration
public 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 definition
create 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 definition
create 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的文章就介绍到这了,更多相关SpringBoot集成quartz内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBoot2.6.3集成quartz的方式

本文链接: https://lsjlt.com/news/139669.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SpringBoot2.6.3集成quartz的方式
    quartz使用 quartz启动需要数据库有很多表的支持,这些表的建表脚本可以通过如下方式找到 如何找到quartz的数据库脚本在这里下载,需要注意的是下载2.2.3这个版本,不知...
    99+
    2024-04-02
  • SpringBoot2.6.3怎么集成quartz
    这篇文章主要介绍了SpringBoot2.6.3怎么集成quartz的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot2.6.3怎么集成quartz文章都会有所收获,下面我们一起来看看吧。qua...
    99+
    2023-06-29
  • Quartz与Spring集成的方法是什么
    要将Quartz与Spring集成,可以按照以下步骤进行操作:1. 添加Quartz和Spring的依赖:在项目的pom.xml文件...
    99+
    2023-10-20
    Quartz Spring
  • Quartz与Spring集成的两种方法示例
    目录Quartz与Spring集成方式:1.MethodInvokeJobDetailFactoryBean2.JobDetailBean3.两种集成方式的简单说明Quartz与Sp...
    99+
    2024-04-02
  • 的集成最佳方式
    通过将 sass 与 bootstrap 集成,你可以充分利用这两种工具的强大功能, 创建时尚且可扩展的 web 界面。步骤如下:安装 sass 和 bootstrap创建 sass 文...
    99+
    2024-04-13
    java php css bootstrap
  • SpringBoot - 集成Quartz框架之常用配置
    Quartz是一款Java编写的开源任务调度框架,同时它也是Spring默认的任务调度框架。它的作用其实类似于Java中的Timer定时器以及JUC中的ScheduledExecutorService...
    99+
    2023-09-08
    spring boot java spring
  • SpringBoot集成quartz实现定时任务详解
    目录准备知识点什么是QuartzQuartz的体系结构什么是Quartz持久化实现案例 - 单实例方式实现案例 - 分布式方式后端实现前端实现测试效果准备知识点 需要了解常用的Qua...
    99+
    2022-11-13
    SpringBoot quartz定时任务 SpringBoot 定时任务 SpringBoot quartz
  • quartz集群配置的方法是什么
    配置Quartz集群有以下几个步骤:1. 配置数据库:首先,需要准备一个数据库来存储Quartz的调度信息。可以使用MySQL、Or...
    99+
    2023-09-18
    quartz
  • Springboot集成swagger实现方式
    Swagger 提供了一个全新的维护 API 文档的方式,有4大优点: 自动生成文档:只需要少量的注解,Swagger 就可以根据代码自动生成 API 文档,很好的保证了文...
    99+
    2024-04-02
  • Java集成presto查询方式
    目录Java集成presto查询1.pom文件引入相关jar2.application.yml配置presto相关3.获取连接与测试Java程序访问prestopom.xml中引入p...
    99+
    2024-04-02
  • mybatis集成到spring的方式详解
    目录1 前言1.1 集成spring前使用mybatis的方式1.2 集成mybatis到spring的关键步骤2 SqlSessionFactoryBean对象分析2.1 buil...
    99+
    2023-05-20
    mybatis集成spring mybatis集成到spring
  • quartz集群防止并发的方法是什么
    Quartz集群的目的是确保在多个节点上调度任务时的高可用性和负载均衡。为了防止并发问题,可以采取以下方法:1. 数据库锁定:在Qu...
    99+
    2023-09-18
    quartz
  • Quartz注解方式怎么配置
    本篇内容主要讲解“Quartz注解方式怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Quartz注解方式怎么配置”吧!一:目录结构二:统一配置文件context-datasource.p...
    99+
    2023-06-04
  • 详解Spring集成Redis的两种方式
    目录一、使用Jedis方式集成1、增加依赖2、配置项3、配置连接池4、测试使用spring-data-redis1、引入依赖2、配置项3、使用4、可能会遇到的坑哨兵和集群总结:在工作...
    99+
    2024-04-02
  • springboot集成websocket的四种方式小结
    目录1. 原生注解 2. Spring封装 3. TIO STOMP Session 共享的问题 如何选择 其它 参考链接 1. 原生注解 pom.xml <depen...
    99+
    2024-04-02
  • mybatis集成到spring的方式有哪些
    本篇文章和大家了解一下mybatis集成到spring的方式有哪些。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。1 前言1.1 集成spring前使用mybatis的方式mybatis单独使用时,一般的写法如下所示://...
    99+
    2023-07-06
  • 可视化定时任务quartz集成解析全过程
    目录前言1.目录结构2.原理3.表结构4.整合springboot1.pom文件2.ScheduleConfig3.业务类4.运行配置5.ScheduleJob 6.Sch...
    99+
    2022-11-13
    quartz详解 quartz源码解析 quartz集群任务调度
  • 嵌入式系统中C++与RTOS的集成方式
    嵌入式系统中集成 c++++ 和 rtos 有三种方法:无中断方式:c++ 代码脱离 rtos 调度,放弃实时性。合作式多任务:c++ 任务与 rtos 交互,带来上下文切换开销。抢占式...
    99+
    2024-05-12
    c++ rtos 标准库
  • Spring Boot 项目集成Redis的方式详解
    集成方式 使用Jedis Jedis是Redis官方推荐的面向Java的操作Redis的客户端,是对服务端直连后进行操作。如果直接使用Jedis进行连接,多线程环境下是非线程安全的...
    99+
    2024-04-02
  • java Web报表集成的方式是什么
    本篇内容主要讲解“ java Web报表集成的方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ java Web报表集成的方式是什么”吧!一般问这个问题的都是想咨询有没有和.net 平台...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作