集成定时任务框架xxl-job、snail-job选型对比笔记

news2025/1/17 17:03:10

xxl-job、snail-job选型对比个人总结

  • 前述
  • xxl-job与snail-job对比
  • 其他补充
    • 重试服务模块
    • xxl-job调度中心
    • snail-job调度中心
    • 扩展-任务调度算法
  • 结语

前述

为啥需要集成其他第三方定时任务框架,选择spring自带的不好吗?

  • 解决spring自身调度任务不可灵活在线调整定时执行规则(启动、停用、cron修改等)
  • 业务服务多副本集群部署还得手动加锁,以防止同时重复调度执行
  • 调度情况不直观,执行状态、结果、日志信息等信息无法直观体现。

因此,选择集成其他第三方调度框架。

集成第三方定时任务框架xxl-job or snail-job,调度服务单独部署,业务服务模块直接引入依赖、整合定时任务逻辑作为执行器即可

xxl-job与snail-job对比

进行主要的核心差异来进行选型对比(详细的对比,见snail-job官方文档):

  • xxl-job 调度中心虽可集群,但只可任一节点加锁后进行集中式调度任务,其他节点空闲且无法操作,可能造成单个调度节点压力、负载过大;无流程编排;无重试服务模块
  • snail-job 调度中心集群通过分桶各自调度所属桶的任务给执行器执行,节点变化,中心节点桶分配可再平衡;有流程编排;另有重试服务模块

其他补充

这里主要从代码层面简单说明下调度中心节点集群下调度分配任务的不同,以及补充下snail-job的重试服务模块说明。

重试服务模块

重试模块主要是针对接口调用失败后的重试配置,非定时任务执行的重试配置。
单纯就是定时任务的话,重试模块可能不需要,按需集成即可。

xxl-job调度中心

即使集群部署多节点调度中心,任一时刻只能由一个节点加锁并集中去检查、需要调度的全部任务

snail-job调度中心

调度中心集群可以通过各自拥有的分桶buckets,获取各自分桶下的任务来进行调度给执行器来执行。
如果调度中心集群中节点增加或减少,再平衡各调度节点的分桶buckets即可。
其中,定时任务添加的时候,桶索引下标会根据哈希算法生成。

附调度中心再平衡代码:

// 详见类方法ServerNodeBalance.doBalance()
// 和接口ServerLoadBalance.allocate()的实现类

附任务生成桶索引下标代码:

job.setBucketIndex(HashUtil.bkdrHash(jobRequestVO.getGroupName() + jobRequestVO.getJobName())
                % systemProperties.getBucketTotal());

扩展-任务调度算法

时间轮算法,多级分层时间轮算法…
调度中心任务调度的核心

结语

没有哪个最好,只有合适,按需选择即可。

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

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

相关文章

VSCode 使用默认profile打开文件

VSCode 本身的定位就是文本编辑器,只是通过各种插件才实现了 IDE 的功能。 如果想要把 VSCode 当作 IDE 和文本编辑器同时使用,就需要注意 profile 切换的问题。 profile 是 VSCode 的一个功能,可以通过多首选项管理不同的环境,比…

Profibus DP转Modbus TCP协议转换网关模块功能详解

Profibus DP 和 Modbus TCP 是两种不同的工业现场总线协议,Profibus DP 常用于制造业自动化领域,而 Modbus TCP 则在工业自动化和楼宇自动化等领域广泛应用。实现 Profibus DP 转 Modbus TCP 功能,通常需要特定的网关设备,以下为你…

镭速大文件传输视频文件预览实现原理

镭速可以支持视频预览,在测试过程中需要大量不同格式的视频,如果直接去找各种格式的视频不太现实,所以就会用到一个视频格式转换的工具ffmpeg,本文将介绍ffmpeg的基本使用方法。FFmpeg 是一个免费开源的音视频处理工具&#xff0c…

keepalived双机热备(LVS+keepalived)实验笔记

目录 前提准备: keepalived1: keepalived2: web1: web2: keepalived介绍 功能特点 工作原理 应用场景 前提准备: 准备4台centos,其中两台为keepalived,两台为webkeepalive…

MySQL(高级特性篇) 02 章——MySQL的数据目录

一、MySQL8的主要目录结构 命令: find / -name mysql 安装好MySQL8之后,我们查看如下的目录结构 (1)数据库文件的存放路径 MySQL数据库文件的存放路径:/var/lib/mysql/MySQL服务器程序在启动时会到文件系统的某个目…

【C++篇】红黑树的实现

目录 前言: 一,红黑树的概念 1.1,红黑树的规则 1.2,红黑树的最长路径 1.3,红黑树的效率分析 二,红黑树的实现 2.1,红黑树的结构 2.2,红黑树的插入 2.2.1,大致过程…

UDP报文格式

UDP是传输层的一个重要协议,他的特性有面向数据报、无连接、不可靠传输、全双工。 下面是UDP报文格式: 1,报头 UDP的报头长度位8个字节,包含源端口、目的端口、长度和校验和,其中每个属性均为两个字节。报头格式为二…

解锁转型密码:不同方向的技能与素质修炼手册

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 解锁…

HTML中最基本的东西

本文内容的标签,将是看懂HTML的最基本之基本 ,是跟您在写文章时候一样内容。一般想掌握极其容易,但是也要懂得如何使用,过目不忘,为手熟尔。才是我们学习的最终目的。其实边看边敲都行,或者是边看边复制粘贴…

NodeJS | 搭建本地/公网服务器 live-server 的使用与安装

目录 介绍 安装 live-server 安装方法 安装后的验证 环境变量问题 Node.js 环境变量未配置正确 全局安装的 live-server 路径未添加到环境变量 运行测试 默认访问主界面 访问文件 报错信息与解决 问题一:未知命令 问题二:拒绝脚本 公网配置…

【excel】VBA股票数据获取(搜狐股票)

文章目录 一、序二、excel 自动刷新股票数据三、付费获取 一、序 我其实不会 excel 的函数和 visual basic。因为都可以用matlab和python完成。 今天用了下VBA,还挺不错的。分享下。 上传写了个matlab获取股票数据的,是雅虎财经的。这次是搜狐股票的数…

Redis的过期策略、内存淘汰机制

Redis只能存5G数据,可是你写了10G,那会删5G的数据。怎么删的?还有,你的数据已经设置了过期时间,但是时间到了,为什么内存占用率还是比较高? 一、Redis的过期策略 Redis采用的是定期删除惰性删除策略。 1…

C语言结构体漫谈:从平凡中见不平凡

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文《1》 结构体的两种声明一、结构…

redis(2:数据结构)

1.String 2.key的层级格式 3.Hash 4.List 5.Set 6.SortedSet

OCP使用中的常见问题与解决方法

OCP的常见问题 页面卡顿: 遇到页面卡顿的问题时,首先需要区分是全局性的卡顿,即所有页面都出现延迟或响应缓慢,还是仅限于特定的监控页面。 监控数据看不到: 需要明确是全部数据都无法查看,还是仅限于特定集群的数…

第三十八章 Spring之假如让你来写MVC——适配器篇

Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…

【开源免费】基于SpringBoot+Vue.JS企业OA管理系统(JAVA毕业设计)

本文项目编号 T 135 ,文末自助获取源码 \color{red}{T135,文末自助获取源码} T135,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

(12)springMVC文件的上传

SpringMVC文件上传 首先是快速搭建一个springMVC项目 新建项目mvn依赖导入添加webMoudle添加Tomcat运行环境.在配置tomcat时ApplicationContext置为"/"配置Artfact的lib配置WEB-INF配置文件(记得添加乱码过滤)配置springmvc-servlet文件&…

【华为路由/交换机的ftp文件操作】

华为路由/交换机的ftp文件操作 PC:10.0.1.1 R1:10.0.1.254 / 10.0.2.254 FTP:10.0.2.1 S1:无配置 在桌面创建FTP-Huawei文件夹,里面创建config/test.txt。 点击上图中的“启动”按钮。 然后ftp到server,…

虚拟拨号技术(GOIP|VOIP)【基于IP的语音传输转换给不法分子的境外来电披上一层外衣】: Voice over Internet Protocol

文章目录 引言I 虚拟拨号技术(GOIP|VOIP)原理特性:隐蔽性和欺骗性II “GOIP”设备原理主要功能III 基于IP的语音传输 “VOIP” (Voice over Internet Protocol)IV “断卡行动”“断卡行动”目的电信运营商为打击电诈的工作V 知识扩展虚拟号保护隐私虚拟运营商被用于拨打骚扰…