当前位置: 首页 > news >正文

[Java实战]Spring Boot 定时任务(十五)

[Java实战]Spring Boot 定时任务(十五)

一、定时任务的应用场景
  1. 数据同步:每日凌晨同步第三方数据
  2. 状态检查:每5分钟扫描订单超时未支付
  3. 资源清理:每小时清理临时文件
  4. 报表生成:每月1号生成财务统计报表
  5. 通知推送:每天9点发送生日祝福短信
二、Spring Boot 定时任务的 3 种实现方式
1. 基于 @Scheduled 注解(推荐)

核心注解

  • @EnableScheduling:启动类启用定时任务
  • @Scheduled:定义任务执行规则

示例代码

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;@Component
public class OrderTimeoutTask {// 每5分钟执行(支持cron、fixedRate、fixedDelay)@Scheduled(cron = "0 */5 * * * ?")public void checkUnpaidOrders() {// 查询超时订单逻辑System.out.println("执行订单超时检查: " + new Date());}// 固定间隔3秒(上次结束后间隔)@Scheduled(fixedDelay = 3000)public void cleanupTempFiles() {// 清理临时文件}// 固定频率2秒(无视执行时长)@Scheduled(fixedRate = 2000)public void heartbeatCheck() {// 服务心跳检测}
}

Cron 表达式详解

字段年(可选)
0-590-590-231-311-121-7 (或 SUN-SAT)1970-2099

常用表达式示例

  • 0 0 2 * * ?:每天凌晨2点
  • 0 0/30 9-17 * * MON-FRI:工作日9点到17点每30分钟
  • 0 15 10 L * ?:每月最后一天10:15

在这里插入图片描述

2. 动态定时任务(数据库驱动)

适用场景:需要运行时调整执行周期
实现步骤

  1. 创建任务配置表
CREATE TABLE task_config (id BIGINT PRIMARY KEY,task_name VARCHAR(50) UNIQUE,cron_expression VARCHAR(20),enabled BOOLEAN
);
  1. 实现动态任务注册
@Component
public class DynamicTask implements SchedulingConfigurer {@Autowiredprivate TaskConfigRepository repository;@Overridepublic void configureTasks(ScheduledTaskRegistrar taskRegistrar) {List<TaskConfig> tasks = repository.findEnabledTasks();tasks.forEach(config -> taskRegistrar.addCronTask(() -> executeTask(config.getTaskName()),config.getCronExpression()));}private void executeTask(String taskName) {// 根据任务名称执行逻辑}
}
3. 整合 Quartz 框架(分布式支持)

优势:支持持久化、集群、动态调度
实现步骤

  1. 添加依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
  1. 定义 Job 类
public class EmailJob extends QuartzJobBean {@Overrideprotected void executeInternal(JobExecutionContext context) {// 发送邮件逻辑}
}
  1. 配置触发器与调度器
@Configuration
public class QuartzConfig {@Beanpublic JobDetail emailJobDetail() {return JobBuilder.newJob(EmailJob.class).withIdentity("emailJob").storeDurably().build();}@Beanpublic Trigger emailJobTrigger() {CronScheduleBuilder schedule = CronScheduleBuilder.cronSchedule("0 0 9 * * ?");return TriggerBuilder.newTrigger().forJob(emailJobDetail()).withIdentity("emailTrigger").withSchedule(schedule).build();}
}
三、高级配置与最佳实践
1. 线程池优化

默认问题:所有任务共享单线程
自定义线程池

@Configuration
public class SchedulerConfig implements SchedulingConfigurer {@Overridepublic void configureTasks(ScheduledTaskRegistrar registrar) {ThreadPoolTaskScheduler threadPool = new ThreadPoolTaskScheduler();threadPool.setPoolSize(5);threadPool.setThreadNamePrefix("scheduled-task-");threadPool.initialize();registrar.setTaskScheduler(threadPool);}
}
2. 分布式锁防重复执行

Redisson 实现示例

@Scheduled(cron = "0 0 2 * * ?")
public void generateDailyReport() {RLock lock = redissonClient.getLock("reportLock");try {if (lock.tryLock(0, 30, TimeUnit.SECONDS)) {// 执行报表生成}} finally {lock.unlock();}
}
3. 任务监控与健康检查

暴露执行指标

@Bean
public MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() {return registry -> registry.config().commonTags("application", "task-monitor");
}// 在任务中记录指标
@Scheduled(fixedRate = 5000)
public void recordMetrics() {Metrics.counter("tasks.executed").increment();
}
四、常见问题排查
  1. 任务未执行

    • 检查是否添加 @EnableScheduling
    • 确认 @Component@Service 注解生效
    • 查看日志中是否有异常抛出
  2. 任务重复执行(分布式环境)

    • 使用数据库乐观锁或 Redis 分布式锁
    • 开启 Quartz 集群模式
  3. 任务执行时间过长

    • 配置 @Async 异步执行
    @Async("taskExecutor")
    @Scheduled(fixedRate = 5000)
    public void processData() { /* 长时间任务 */ }
    
五、Spring Boot 定时任务 vs 其他方案
方案优点缺点
@Scheduled简单易用、零配置不支持动态调整、无持久化
Quartz功能强大、支持分布式配置复杂、依赖数据库
XXL-JOB可视化调度、报警完善需要独立部署调度中心
Elastic Job弹性扩容、数据分片学习成本高
六、总结

Spring Boot 通过 @Scheduled 提供了轻量级定时任务支持,适合单机简单场景。对于复杂需求,可结合 Quartz 或选用分布式任务调度框架(如 XXL-JOB)。关键是根据业务规模选择合适方案,并注意线程安全、幂等性、可观测性等生产级要求。

附录

  • Spring Scheduling 官方文档
  • Cron 表达式生成工具
  • Quartz 集群配置指南

希望本教程对您有帮助,请点赞❤️收藏⭐关注支持!欢迎在评论区留言交流技术细节!

相关文章:

[Java实战]Spring Boot 定时任务(十五)

[Java实战]Spring Boot 定时任务&#xff08;十五&#xff09; 一、定时任务的应用场景 数据同步&#xff1a;每日凌晨同步第三方数据状态检查&#xff1a;每5分钟扫描订单超时未支付资源清理&#xff1a;每小时清理临时文件报表生成&#xff1a;每月1号生成财务统计报表通知…...

OpenWrt开发第7篇:OpenWrt配置支持Web界面

文/指尖动听知识库-谷谷 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:Openwrt开发-基于Raspberry Pi 4B开发板 OpenWrt的luci是一个基于Web的图形化管理界面,为用户提供了直观的操作方式,无需命令行即可完成大部分功能的配置。 1.在终端输入ma…...

【多模态】IMAGEBIND论文阅读

every blog every motto: Although the world is full of suffering&#xff0c; it is full also of the overcoming of it 0. 前言 IMAGEBIND 多模态论文梗概 IMAGEBIND是一种夸模态的神经网络&#xff0c;以图片为中心&#xff0c;联合六中模态的网络&#xff08;图片、文…...

【C语言干货】二维数组传参本质

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、二维数组的内存布局 1.二维数组的实质2.二维数组的地址关系 二、二维数组传参的本质 1.参数传递的退化机制2.三种等效的函数声明方式 总结 前言 提示&#…...

基于SpringBoot的抽奖系统测试报告

一、编写目的 本报告为抽奖系统测试报告&#xff0c;本项目可用于团体抽奖活动&#xff0c;包括了用户注册&#xff0c;用户登录&#xff0c;修改奖项以及抽奖等功能。 二、项目背景 抽奖系统采用前后端分离的方法来实现&#xff0c;同时使用了数据库来存储相关的数据&…...

Go语言从零构建SQL数据库(9)-数据库优化器的双剑客

数据库优化器的双剑客&#xff1a;谓词下推与列裁剪 在数据库查询优化的世界里&#xff0c;有两位特别重要的"超级英雄"&#xff1a;谓词下推和列裁剪。这两种优化技术虽然简单&#xff0c;却能带来惊人的性能提升。今天&#xff0c;我们就来揭开它们的神秘面纱&…...

C++中什么是函数指针?

在C中&#xff0c;函数指针是一个指向函数的指针变量。通过函数指针&#xff0c;我们可以像使用函数一样调用它所指向的函数&#xff0c;常用于实现回调函数、函数指针数组等功能。 以下是一个简单的C代码示例&#xff0c;展示了函数指针的使用&#xff1a; cpp #include <…...

Python工具链UV整合环境管理

Python工具链UV整合环境管理 终极Python工具链UV&#xff1a;从依赖管理到项目开发的全维度解析一、引言&#xff1a;重新定义Python开发的大一统时代二、深度安装指南&#xff1a;多场景适配方案1. 官方独立安装器&#xff08;推荐方案&#xff09;2. 进阶安装方式3. 安装验证…...

RuoYi-v4.7.8 jar/war部署

准备条件 jdk-8u73-windows-x64.exe mysql5.7 apache-tomcat-9.0.60 apache-maven-3.8.1 RuoYi-v4.7.8.zip &#xff08;官网 RuoYi&#xff09; 登录gitee,选择标签要下载的版本好&#xff0c;点击克隆下载zip压缩文件 安装maven Apache Archive Distribution Directory…...

基于SpringBoot的小区停车位管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

张量并行优质博客

必读图解系列1 比较全面的相关文献总结博客&#xff0c;可以重点看一下其中的行列切分算子2 # 图解大模型训练之&#xff1a;张量模型并行(TP)&#xff0c;Megatron-LM ↩︎ # 大规模分布式 AI 模型训练系列——张量并行 ↩︎...

汽车诊断简介

历史 20世纪80年代&#xff0c;由于美国西海岸严重的雾霾问题&#xff0c;CARB&#xff08;加州空气资源委员会&#xff09;通过了一项法律&#xff0c;要求对机动车辆进行车载监测诊断。这推动了OBD-I的引入&#xff0c;并在1990年代被OBD II取代。与此同时&#xff0c;欧洲也…...

suricata之规则去重

一、环境和背景 1.1 环境 OS: Ubuntu 22.04.5 LTS IDE: vscode suricata: suricata 7.0.5 1.2 背景 在添加规则时&#xff0c;为了给规则分类&#xff0c;将不同类别的规则写入不同的文件。 在规则加载时两条不同的规则却被认为是重复的&#xff0c;因此记录一下去重逻辑。…...

接口在函数参数和对象类型中的应用

在 TypeScript 中&#xff0c;接口&#xff08;interface&#xff09;是一种强大的工具&#xff0c;用于定义和约束对象的结构。它不仅可以用于描述对象类型&#xff0c;还能够用于定义函数的参数和返回类型。接口可以提高代码的可读性、可维护性&#xff0c;并帮助捕捉潜在的错…...

Javascript:数组和函数

数组 创建数组 使用new创建 let arrnew array(数组大小); 直接赋值创建 let Arr2[];let Arr3[1,A,"HELLLO"]; 这里JS的数组里面的元素属性可以各不相同 演示代码 <script>let Arr1new Array(5);let Arr2[];let Arr3[1,A,"HELLLO"];console.…...

Vue Router

Vue Router:前端路由跳转的魔法 什么是Vue Router Vue Router是Vue官方的路由管理器,它允许我们在不重新加载页面的情况下更改浏览器中显示的内容,实现单页应用(SPA)的无缝导航体验。 📊 Vue Router工作流程图 #mermaid-svg-xNtkA0qYMjB0lvUt {font-family:"trebu…...

谷歌与微软的AI战争:搜索、云服务与生态布局

谷歌与微软的AI战争&#xff1a;搜索、云服务与生态布局 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 谷歌与微软的AI战争&#xff1a;搜索、云服务与生态布局摘要引言技术路线对比1. AI基础设施&#xff1a;算力…...

robomaster机甲大师--电调电机

文章目录 C620电调ID设置速率 电调发送报文电调接收报文cubemx程序初始化发送接收 C620电调 ID设置 速率 1Mbps 电调发送报文 发送的数据为控制电机的输出电流&#xff0c;需要将can数据帧的ID设置为0x200 电调接收报文 机械角度&#xff1a;电机的0到360度映射到0到几千转…...

菜鸟之路day31一一MySQL之多表设计

菜鸟之路day31一一MySQL之多表设计 作者&#xff1a;blue 时间&#xff1a;2025.5.9 文章目录 菜鸟之路day31一一MySQL之多表设计0.概述一.多表设计1.1一对多1.2一对一1.3多对多 0.概述 内容学习自黑马程序员BV1m84y1w7Tb 一.多表设计 1.1一对多 一对多关系实现&#xff…...

害怕和别人发生冲突怎么办? --deepseek

害怕与他人发生冲突是一种常见的心理状态&#xff0c;可能源于对关系破裂、被否定或情绪失控的担忧。但这种恐惧长期存在会影响自我表达和人际关系。以下是分步骤的应对策略&#xff0c;帮助你逐步建立应对冲突的自信&#xff1a; 第一步&#xff1a;理解你的恐惧根源 自我提问…...

Go语言——kratos微服务框架使用

文章目录 一、安装依赖二、创建项目三、初始化项目四、使用git_bash命令终端运行命令五、创建自己的项目1、修改app.proto3、internal/service/app.go4、修改internal/service/service.go文件5、创建internal/biz/content.go文件6、修改internal/biz/biz.go文件7、创建internal…...

无人机飞控算法开发实战:从零到一构建企业级飞控系统

简介 无人机飞控算法是实现稳定飞行和精确控制的核心技术,涉及飞行动力学建模、传感器数据处理、状态估计和控制策略等多个环节。本实战指南将系统讲解四旋翼无人机飞控算法的开发流程,包括飞行动力学模型建立、传感器校准与数据融合、主流控制算法实现(PID、ADRC、EKF)以…...

MiniMind:3块钱成本 + 2小时!训练自己的0.02B的大模型。minimind源码解读、MOE架构

大家好&#xff0c;我是此林。 目录 1. 前言 2. minimind模型源码解读 1. MiniMind Config部分 1.1. 基础参数 1.2. MOE配置 2. MiniMind Model 部分 2.1. MiniMindForCausalLM: 用于语言建模任务 2.2. 主干模型 MiniMindModel 2.3. MiniMindBlock: 模型的基本构建块…...

每日算法刷题 Day3 5.11:leetcode数组2道题,用时1h(有点慢)

5.LC 零矩阵(中等) 面试题 01.08. 零矩阵 - 力扣&#xff08;LeetCode&#xff09; 思想: 法一: 利用两个集合分别储存要清0的行和列索引 另外两种原地优化空间的做法暂时不是目前刷题目标&#xff0c;故不考虑 代码 c: class Solution { public:void setZeroes(vector&l…...

POSIX信号量

目录 一、相关概念回顾 1.信号量 2.多线程使用资源的两种情况 3.P操作和V操作 二、CP && 基于环形队列的生产者消费者模型 1.环形队列的介绍 ​编辑 2.基于环形队列的生产者消费者模型的默认规则&#xff08;通过信号量实现规则的成立&#xff09; 3.相关的结论…...

前端Web开发HTML5+CSS3+移动web(基础-flex)

网页设计套路&#xff1a;从上到下&#xff0c;从整体到局部 &#xff11;&#xff1a;HTML定义&#xff1a; &#xff08;1&#xff09;超文本是点击可以页面来回切换的链接 &#xff08;2&#xff09;标记就是标签语言 &#xff12;&#xff1a;标签的语法 &#xff08;1&…...

Java 原生异步编程与Spring 异步编程 详解

简介 Java 异步编程是现代高性能应用开发的核心技术之一&#xff0c;它允许程序在执行耗时操作&#xff08;如网络请求、文件 IO&#xff09;时不必阻塞主线程&#xff0c;从而提高系统吞吐量和响应性。 异步 vs 同步 同步&#xff1a;任务按顺序执行&#xff0c;后续任务需…...

AUTOSAR图解==>AUTOSAR_TR_HWTestManagementIntegrationGuide

AUTOSAR硬件测试管理集成指南 启动和关闭阶段硬件测试管理的规范与集成 目录 文档概述 1.1 文档范围 1.2 局限性目标与动机 2.1 目标 2.2 动机 2.3 用例约束与假设缩略语与术语相关文档HTMSS AUTOSAR集成方法HTMSS功能描述AUTOSAR架构解决方案 8.1 HTMSS系统架构 8.2 HTMSS启动…...

Day22 Kaggle泰坦尼克号训练实战

​ 作业 自行学习参考如何使用kaggle平台&#xff0c;写下使用注意点&#xff0c;并对下述比赛提交代码 kaggle泰坦里克号人员生还预测 一、流程 思路概述 数据加载 &#xff1a;读取泰坦尼克号的训练集和测试集。数据预处理 &#xff1a;处理缺失值、对分类变量进行编码、…...

基于大核感知与非膨胀卷积的SPPF改进—融合UniRepLK的YOLOv8目标检测创新架构

在当前目标检测领域中&#xff0c;YOLO系列模型因其优异的速度-精度平衡能力而被广泛部署于工业界与科研场景。YOLOv8作为该系列的最新版本&#xff0c;在主干网络与特征金字塔结构上进行了多项优化&#xff0c;进一步提升了其实时性与鲁棒性。然而&#xff0c;其核心组件—SPP…...

[Linux]从零开始的STM32MP157 Busybox根文件系统构建

一、前言 在上一篇教程中&#xff0c;已经教了大家如何使用Buildroot构建根文件系统&#xff0c;并且在最后我们已经完整的构建了一个可以运行的根文件系统。但是&#xff0c;Buildroot的集成度太高了&#xff0c;不利于小白理解根文件系统&#xff0c;所以本次教程&#xff0c…...

C++ RAII机制

RAII&#xff08;Resource Acquisition Is Initialization&#xff09;是一种编程范式&#xff0c;核心思想是&#xff1a;资源的生命周期与对象绑定——对象创建时获取资源&#xff0c;对象销毁时自动释放资源。这种机制通过构造函数和析构函数的配对执行&#xff0c;确保资源…...

spring中的@Value注解详解

一、核心功能与作用 Value是Spring框架中用于动态注入属性值的注解&#xff0c;支持从配置文件、环境变量、SpEL表达式等来源注入数据&#xff0c;实现代码与配置的解耦。 注入类型覆盖广泛 基本类型&#xff1a;字符串、数值&#xff08;int/double&#xff09;、布尔值等。 …...

模型欠拟合是什么?

模型的欠拟合:全面解析 一、定义与核心概念 欠拟合(Underfitting)是指模型在训练数据、验证数据和测试数据上均表现不佳的现象。其本质是模型过于简单或学习能力不足,无法捕捉数据中的潜在规律和复杂关系,导致泛化能力差。例如,用线性模型拟合非线性数据时,模型无法描…...

IC ATE集成电路测试学习——电流测试的原理和方法

电流测试 我们可以通过电流来判断芯片的工作状态时&#xff0c;首先先了解下芯片的电流是如何产生的。 静态电流 理论上&#xff0c;CMOS结构的芯片静态时几乎不耗电 CMOS基本结构&#xff1a;Pmos Nmos 串联当逻辑电平稳定时&#xff1a; ➜ 要么Pmos导通&#xff0c;Nmo…...

Wordpress头像无法加载太慢问题解决方式

Wordpress头像无法加载太慢问题解决方式 1、找到我们当前使用的主题目录中找到functions.php文件在文件最后面添加以下代码 if ( ! function_exists( get_cravatar_url ) ) {/***替换Gravatar头像为Cravatar头像** param string $url** return string*/function get_cravatar…...

《大模型微调实战:Llama 3.0全参数优化指南》

全参数微调&#xff08;Full Parameter Fine-Tuning&#xff09;是推动大模型适应垂直领域任务的核心技术&#xff0c;尤其对于Llama 3.0这类千亿级参数模型而言&#xff0c;其性能优化与场景适配能力直接决定了实际应用价值。然而&#xff0c;全参数微调面临计算成本高、内存占…...

ActiveMQ 生产环境问题排查与调优指南(二)

五、调优策略与实践 5.1 JVM 调优 JVM 调优对于提升 ActiveMQ 性能至关重要&#xff0c;合理的 JVM 配置可以使 ActiveMQ 更高效地利用系统资源&#xff0c;减少性能瓶颈。 设置合理的堆内存大小是 JVM 调优的关键步骤。堆内存是 JVM 中用于存储对象实例的区域&#xff0c;其…...

AugmentCode 非常昂贵的新定价

AugmentCode 现在的价格比 Cursor 和 Windsurf 的总和还要贵。 AugmentCode 曾是我开发工作流程的常用工具。出乎意料的是,他们改变了定价结构,让开发者们震惊不已。 原来的30 美元月费已经增长为50 美元月费,这是一个67%的增长。 改变我看法的不仅仅是价格上涨,还有他…...

Unity 红点系统

首先明确一个&#xff0c;即红点系统的数据结构是一颗树&#xff0c;并且红点的数据结构的初始化需要放在游戏的初始化中&#xff0c;之后再是对应的红点UI侧的注册&#xff0c;对应的红点UI在销毁时需要注销对红点UI的显示回调注册&#xff0c;但是不销毁数据侧的红点注册 - …...

Python-UV多环境管理

Python-UV多环境管理 Python使用UV进行环境管理&#xff0c;系统了解UV的使用 文章目录 Python-UV多环境管理 [toc]1-学习要点2-核心知识点3-UV多环境管理4-venv和uv脚本对比1-venv环境管理2-uv环境管理3-venv对比uv 1-学习要点 1-熟悉【UV环境管理】2-熟悉【UV和Venv脚本区别…...

多空短线决策+飞云分仓操盘,两个副图指标组合操盘技术,短线更精准有效

如上图&#xff0c;两个副图指标&#xff0c;第一个【短线多空决策】&#xff0c;第二个副图指标【飞云分仓操盘】&#xff0c;指标组合使用&#xff0c;精准性和有效性更加有效。 如上图&#xff0c;两个指标组合使用&#xff0c;我们选择第二个副图指标出现红色和紫色区域的标…...

istio in action之应用弹性与容错机制

在分布式系统中&#xff0c;服务间的依赖关系就像一张错综复杂的网络&#xff0c;任何一个节点的抖动都可能引发连锁反应。这也是为什么我们需要强调弹性&#xff0c;因为在分布式系统中&#xff0c;服务之间通过网络进行通信&#xff0c;这本身就引入了无数个潜在的失败点。我…...

将PyQt5设计的程序打包成.exe文件

打包教程 因为打包的机制是会把当前的解释器的包也打包上&#xff0c;而我的环境经常会有一些较大的包&#xff0c;比如torch之类的。所以这里会创建一个单独的环境。 conda create -n image_process python3.8 激活环境 conda activate image_process 现在先安装我需要安装…...

Java原生结合MQTTX---完成心跳对话(附带源码)

简言&#xff1a;✨当Java遇上MQTT&#xff1a;打造会"隔空传话"的魔法程序✨ 导语&#xff1a;想不想让两个Java程序像哈利波特里的双面镜一样实时对话&#xff1f;今天我们将用MQTT协议EMQX&#xff0c;在Ubuntu上搭建一个魔法邮局&#xff0c;再亲手编写会传信的…...

redis数据结构-06(LRANGE、LINDEX、LSET、LREM)

列表操作&#xff1a;LRANGE、LINDEX、LSET、LREM Redis 列表不仅仅是简单的数组&#xff1b;它们是一种强大的数据结构&#xff0c;可以高效地操作有序数据。本课将深入探讨使用 Redis 列表的四个基本命令&#xff1a; LRANGE 、 LINDEX 、 LSET 和 LREM 。掌握这些命令将使您…...

4.4 os模块

os模块&#xff1a; chdir:修改工作路径 --- 文件所在位置的标识 getcwd():返回当前路径&#xff0c;如果修改了则显示修改后的路径 curdir:获取当前目录的表示形式 cpu_count():返回当前cpu的线程数 getppid(): 获取当前进程编号 getppid()&#xff1a;获取当前进程的父进…...

在 Windows 系统上选择与部署 DICOM 医学影像开发工具与库

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用…...

MYSQL数据库集群高可用和数据监控平台(详细版)

项目说明 概述 该项目共分为2个子项目&#xff0c;由MYSQL集群高可用和数据监控平台两部分组成 MYSQL集群高可用属于云原生高级课数据库运维部分的知识 数据监控平台属于云原生拔高项目&#xff0c;旨在让学生增加知识面&#xff0c;提高项目实习经历&#xff0c;充实简历 …...

学习通刷课稳定版(美化面板+完全免费)

学习通刷 &#xff08;美化面板完全免费&#xff09; 安装教程方法一源码文件 方法二 提示结尾 安装教程 方法一 我们首先在浏览器打开脚本猫网站并获取该插件&#xff08;浏览器以Edge为例&#xff09; 脚本猫首页&#xff1a;https://scriptcat.org/zh-CN/ 第一步&#xff…...