Quartz + SpringBoot 实现分布式定时任务

文章目录

  • 前言
  • 一、分布式定时任务解决方案
  • 二、Quartz是什么?
    • 1.quartz简介
    • 2.quartz的优缺点
  • 二、Quartz分布式部署
  • 总结


前言

因为应用升级,由之前的单节点微服务应用升级为集群微服务应用,所以之前的定时任务Spring Scheduled不再适用了,会导致任务被重复调用,于是寻求分布式的定时任务方案。


一、分布式定时任务解决方案

常用分布式定时任务解决方案如下:

在这里插入图片描述


二、Quartz是什么?

1.quartz简介

quartz中文文档

Quartz是一个功能强大的开源定时任务框架,它可以用于在Java应用程序中实现定时任务的调度和执行。Quartz具有以下特点:

1.1、灵活性:Quartz可以根据需要配置不同类型的触发器(trigger),如时间触发器、日历触发器等,以满足各种调度需求。同时,Quartz还支持任务的持久化存储,可以在应用程序重启后继续执行未完成的任务。

1.2、分布式调度:Quartz可以通过集群部署实现分布式任务调度。多个节点可以共享同一个数据库,并通过使用锁机制来避免重复执行同一个任务。

1.3、 扩展性:Quartz提供了丰富的扩展点和插件机制,可以自定义和扩展各个组件的功能。开发人员可以通过实现接口或者编写插件,来满足特定的定时任务调度需求。

1.4、监控和管理:Quartz提供了一个用户友好的管理界面,可以用于查看和管理任务调度的情况。同时,Quartz还支持与其他监控和管理工具集成,如JMX、Spring等。

总体来说,Quartz是一个功能强大、灵活可配置的定时任务框架,适用于各种规模和复杂度的任务调度需求。它已经成为Java开发中最受欢迎的定时任务框架之一。

2.quartz的优缺点

quartz 的常见集群方案如下,通过在数据库中配置定时器信息, 以数据库悲观锁的方式达到同一个任务始终只有一个节点在运行。
优点:
保证节点高可用 (HA), 如果某一个节点挂了, 其他节点可以顶上。
缺点:
同一个任务只能有一个节点运行,其他节点将不执行任务,性能低,资源浪费,当碰到大量短任务时,各个节点频繁的竞争数据库锁,节点越多这种情况越严重,性能会很低下。

quartz 的分布式仅解决了集群高可用的问题,并没有解决任务分片的问题,不能实现水平扩展。


二、Quartz分布式部署

小陈同学在实现过程中,发现一个大佬写的一个文章,非常详细的阐述了Quartz 分布式配置的一整个流程,于是就不再班门弄斧了,给大家推荐一下。
参考文档:SpringBoot 整合 Quartz 实现分布式调度


总结

学无止境,冲鸭。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/824705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SV-704LW 无线WIFI网络音柱

SV-704LW 无线WIFI网络音柱(工业级) 一、描述 SV-704LW是深圳锐科达电子有限公司的一款壁挂式WIFI无线网络音柱,通过WIFI无线接入到WIFI覆盖的网络中,可将网络音源通过自带的功放和喇叭输出播放,其采用防水设计,功率可以从30W到6…

如何利用FLUENT计算流体力学方法解决大气与环境领域流动问题

ANSYS FLUENT是目前全球领先的商用CFD 软件,市场占有率达70%左右,是工程师和研究者不可多得的有力工具。由于采用了多种求解方法和多重网格加速收敛技术,因而FLUENT能达到最佳的收敛速度和求解精度。灵活的非结构化网格和基于解的自适应网格技…

从OWASP API Security TOP 10谈API安全

1.前言 应用程序编程接口(API)是当今应用驱动世界创新的一个基本元素。从银行、零售、运输到物联网、 自动驾驶汽车、智慧城市,API 是现代移动、SaaS 和 web 应用程序的重要组成部分,可以在面向客 户、面向合作伙伴和内部的应用程…

计算机组成原理 — 控制单元的功能

控制单元的功能 控制单元的功能微操作命令分析取指周期间址周期执行周期中断周期 控制单元的功能控制单元的外特性输入信号输出信号 控制信号举例不采用CPU内部总线的方式取指周期间址周期执行周期 采用CPU内部总线的方式取指周期间址周期执行周期 多级时序系统机器周期时钟周期…

反激电源——TL431及光耦反馈电路计算(不涉及环路补偿)

一、TL431及光耦反馈电路 TL431以及光耦电路是反激的副边反馈类型电路中的常见应用。 其反馈工作原理为:当副边的输出电压升高时,TL431的REF点采样电压也会升高,使得TL431的导通量增加,同时光耦内部的发光二极管流过的电流也增大&…

线段树汇总

线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N&a…

SpringCloud系列(4)--SpringCloud微服务工程构建

前言:在上节我们新建了一个SpringCloud父工程,这一节主要是构建微服务工程,通过实现订单模块和支付模块来熟悉微服务的概念和构建过程。 1、在父工程下新建模块 2、选择模块的项目类型为Maven并选择模块要使用的JDK版本 3、填写子模块的名称&…

企业网盘搭建——LNMP

php包链接:https://pan.baidu.com/s/1RElYTQx320pN6452N_7t1Q?pwdp8gs 提取码:p8gs 网盘源码包链接:https://pan.baidu.com/s/1BaYqwruka1P6h5wBBrLiBw?pwdwrzo 提取码:wrzo 目录 一.手动部署 二.自动部署 一.手动部署 …

SQL表连接详解:JOIN与逗号(,)的使用及其性能影响

省流版 在这个详细的解释中,我们将深入探讨SQL中表连接的概念,特别是JOIN和逗号(,)在连接表时的不同用法及其对查询性能的影响。通过实际示例和背后的逻辑分析,我们将揭示在不同场景下选择哪种连接方式更为合适。 1.…

BioTech - 使用 Amber 工具 松弛(Relaxation) 蛋白质三维结构 (Python)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/137889532 Amber 工具在蛋白质 松弛(Relaxation) 过程中起着重要的作用。在分子动力学模拟中,蛋白质松弛是指模拟过程中蛋白质结构达到一个较为稳定的状态。这个过程通…

社交媒体数据恢复:推特、Twitter

推特(Twitter)数据恢复:如何找回丢失的内容 随着社交媒体的普及,越来越多的人开始使用推特(Twitter)来分享生活点滴、发表观点和获取信息。然而,有时候我们会不小心删除了重要的推文&#xff0…

根据 Excel 列生成 SQL

公司有个历史数据刷数据的需求, 开发功能有点浪费, 手工刷数据有点慢, 所以研究了下 excel 直接生成 SQL, 挺好用, 记录一下; 例如这是我们的数据, 要求把创建时间和完成时间刷进数据库中, 工单编号唯一 Excel 公式如下: "UPDATE service_order SET create…

工业控制(ICS)---MMS

MMS 工控领域的TCP协议,有时wireshark会将response包解析为tcp协议,影响做题,如果筛选mms时出现连续request包,考虑wireshark解析错误,将筛选条件删除手动看一下 initiate(可以理解为握手) i…

DRF 序列化类serializer单表

【五】序列化类serializer单表 【1】主要功能 快速序列化 将数据库模型类对象转换成响应数据,以便前端进行展示或使用。这些响应数据通常是以Json(或者xml、yaml)的格式进行传输的。 反序列化之前数据校验 序列化器还可以对接收到的数据进行…

宝塔要注意的问题

数据库创建访问权限要全部人 反向代理1 打包dist,并不会有反向代理,所以宝塔里面要配置 反向代理2 这种去掉/api为/,上面的并没有去掉 rewrite ^/api/(.*)$ /$1 break;

hcia datacom课程学习(6):路由与路由表基础

1.路由的作用 不同网段的设备互相通信需要具有路由功能的设备进行转发 具有路由功能的设备不一定是路由器,交换机可以有路由功能,同样的,路由器也可以有交换功能,像家里常用的路由器就是集路由功能和交换功能于一体的 2.路由相…

【SAP NWDI】创建DC(Development component)(三)

一、准备DC组件包 首先需要下载下面这7个sca 的组件包,找到对应的ME版本的组件包,可以找对应的Basis帮忙下载。然后把这7个组件包放入到服务器中根目录的这个目录中,如果目录没有的需要自己创建出来。 二、导入DC组件包 注意:下面的的图中 有需要填写 in 和 out 的连个目…

网络编程 day5

select实现TCP并发服务器&#xff1a; #include<myhead.h> #define SER_IP "192.168.125.199" //服务器IP地址 #define SER_PORT 6666 //服务器端口号int main(int argc, const char *argv[]) {//1、创建套节字&#xff1a;用于接收…

视频汇聚/安防视频监控云平台EasyCVR云端录像播放与下载的接口调用方法

视频汇聚/安防视频监控云平台EasyCVR支持多协议接入、可分发多格式的视频流&#xff0c;平台支持高清视频的接入、管理、共享&#xff0c;支持7*24小时不间断监控。视频监控管理平台EasyCVR可提供实时远程视频监控、录像、回放与存储、告警、语音对讲、云台控制、平台级联、磁盘…

Windows平台下的Oracle 19c补丁升级

Windows平台下的Oracle 19c补丁升级 文章目录 Windows平台下的Oracle 19c补丁升级第一章 概述第二章 安装前备份2.1 软件目录备份2.2 权限备份2.3 备份数据库 第三章 安装前检查3.1 查看数据库版本3.2 升级opatch版本 第四章 安装补丁4.1 设置环境变量4.2 关闭oracle相关服务4.…