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.rhkb.cn/news/313158.html

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

相关文章

固定测斜仪:工程观测的精密利器

在工程观测测量领域,固定测斜仪扮演着至关重要的角色。固定测斜仪,凭借其耐冲击型倾斜传感器、出色的可靠性、快速稳定的特点,以及简洁的安装和智能识别功能,已成为行业内重要工具。其输出信号为RS485数字量,可直接显示…

Postman之全局变量与环境变量配置

实际开发中可能需要不停切换环境,接口中来回输入环境地址比较麻烦,故而通过定义变量来节约频繁更换测试地址所耗费的时间。Postman 允许定义自己的全局变量(Globals)与环境变量(Environment),最…

51-41 Stable Video Diffusion,高质量视频生成新时代

23年11月,Stability AI公司公开了稳定视频扩散模型Stable Video Diffusion(SVD)的代码和权重,视频生成迎来了新时代。SVD是一种潜在扩散模型,支持文本生成视频、图像生成视频以及物体多视角3D合成。从工程角度来看,本文主要提出了…

如何使用Postgres的扩展(如PostGIS)来支持地理空间数据

文章目录 解决方案1. 安装PostGIS扩展2. 创建地理空间数据表3. 插入地理空间数据4. 进行地理空间查询 示例代码 在PostgreSQL中,我们可以使用扩展来增强数据库的功能。对于地理空间数据,PostGIS是一个特别有用的扩展,它提供了对地理对象&…

Linux安装mysql 8.0

1.使用root登录服务器 2.创建安装包存放目录 # mkdir /software # cd /software3.下载并解压mysql安装包 # wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz # tar xvJf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz # mv m…

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

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

利用动态规划优化10年投资回报:策略、证明与算法分析

利用动态规划优化10年投资回报:策略、证明与算法分析 a. 存在最优投资策略的证明b. 最优子结构性质的证明c. 最优投资策略规划算法设计d. 新限制条款下最优子结构性质的证明 在面对投资策略规划问题时,我们的目标是在10年后获得最大的回报。Amalgamated投…

产废端实时音视频监控系统在运输车辆驾驶室中的应用

实时音视频监控系统可通过在运输车辆驾驶室安装音视频摄录设备,实现将运输车辆内部及周围环境音视频数据通过移动网络实时回传指挥中心的功能。 前端摄录设备主要负责采集车内外的视音频信息,为了保障车辆及运输人员 的安全,应合理选择摄录设…

HTML5 <video> 标签属性、API 方法、事件、自定义样式详解与实用示例

HTML5 <video> 标签为网页内嵌视频提供了强大且便捷的功能。以下是对 <video> 标签的主要属性、API 方法、事件、自定义样式及其使用示例的详细介绍&#xff1a; 一、属性 1. src 定义&#xff1a;指定视频文件的 URL。示例&#xff1a;<video src"my_v…

linux-centos虚拟机设置固定ip

环境准备 虚拟机版本&#xff1a;centos7 安装环境&#xff1a;vmware17 1、设置网络连接 虚拟机-设置-网络适配器-NAT模式 2、查看子网信息 编辑-虚拟网络编辑器-NAT模式-NAT设置 查看子网ip和网关ip 下一步要用 3、修改配置文件 vim /etc/sysconfig/network-scripts…

接口压力测试 jmeter--入门篇(一)

一 压力测试的目的 评估系统的能力识别系统的弱点&#xff1a;瓶颈/弱点检查系统的隐藏的问题检验系统的稳定性和可靠性 二 性能测试指标以及测算 【虚拟用户数】&#xff1a;线程用户【并发数】&#xff1a;指在某一时间&#xff0c;一定数量的虚拟用户同时对系统的某个功…

Linux 搭建私有yum源仓库

一、环境准备 IP系统版本作用192.168.140.155CentOS 7.9.2009yum源仓库192.168.140.153CentOS 7.9.2009测试 准备两台服务器&#xff0c;一台作为yum源仓库&#xff0c;另一台作为测试使用。 二、搭建yum源服务器 &#xff08;无法连接外网的情况&#xff0c;需要去官网下载镜…

IP定位技术在解决广告恶意点击问题中的应用

随着互联网的迅猛发展&#xff0c;数字广告已成为企业推广产品和服务的重要方式。然而&#xff0c;随之而来的是广告恶意点击的问题&#xff0c;这不仅导致广告主的损失&#xff0c;也影响了广告生态的健康发展。为了解决这一问题&#xff0c;IP定位技术应运而生&#xff0c;成…

PACNet CellNet(代码开源)|bulk数据作细胞分类,评估细胞命运性能的一大利器

文章目录 1.前言2.CellNet2.1CellNet简介2.2CellNet结果 3.PACNet3.1安装R包与加载R包3.2加载数据3.3开始训练和分类3.4可视化分类过程3.5可视化分类结果 4.细胞命运分类和免疫浸润比较 1.前言 今天冲浪看到一个细胞分类性能评估的R包——PACNet&#xff0c;它与转录组分析方法…

第一篇【传奇开心果系列】我和AI面对面聊编程:深度比较PyQt5和tkinter.ttk

传奇开心果系列博文 系列博文目录我和AI面对面聊编程系列 博文目录前言一、今天我们面对广大读者选择PyQt5和tkinter.ttk做比较这个话题目的是什么&#xff1f;二、举一个最简单的pyqt5信号和插槽的例子三、这和tkinter的点击事件有什么区别&#xff1f;四、如何选择&#xff1…

极速、易用、高度定制化的开源社区交流平台:Flarum

Flarum&#xff1a;轻盈高效&#xff0c;引领未来社区互动新风尚的革命性论坛平台- 精选真开源&#xff0c;释放新价值。 概览 Flarum是一款精心打造的现代网站讨论平台&#xff0c;以其精炼高效而著称。作为 esoTalk 和 FluxBB 的理念和技术的集大成者&#xff0c;Flarum 致力…

5.11 mybatis之returnInstanceForEmptyRow作用

文章目录 1. 当returnInstanceForEmptyRowtrue时2 当returnInstanceForEmptyRowfalse时 mybatis的settings配置中有个属性returnInstanceForEmptyRow&#xff0c;该属性新增于mybatis的3.4.2版本&#xff0c;低于此版本不可用。该属性的作用官方解释为&#xff1a;当返回行的所…

jmeter及PTS压测介绍和使用

一、常用压测工具&#xff1a; loadrunner apache ab&#xff08;单接口压测最方便&#xff09; jmeter 阿里云PTS&#xff08;原生上传jmeter脚本进行压测&#xff09; 二、jmeter可以压测不同的协议和应用 web http https jdbc for database TCP 三、使用场景及优点 1、功能…

分布式限流——Redis + Lua脚本实现令牌桶算法

主要思路概括如下&#xff1a; 定义数据结构&#xff1a; 使用Redis存储令牌桶的状态&#xff0c;包括当前令牌数&#xff08;KEYS[1]&#xff09;和上一次令牌填充的时间戳&#xff08;KEYS[1]:last&#xff09;。 计算新增令牌&#xff1a; 获取当前系统时间与上次令牌填充时…

康耐视visionpro-CogHistogramTool操作操作工具详细说明

CogHistogramTool]功能说明&#xff1a; 对图像区域中的像素值进行灰度值统计 CogHistogramTool操作说明&#xff1a; ①.打开工具栏&#xff0c;双击或点击鼠标拖拽添加CogHistogramTool工具 2.添加输入图像&#xff0c;点击鼠标右键“链接到”或以连线拖拽的方式选择相应输入…