snail-job 1.5.0-beta1发布
🔥🔥🔥 灵活,可靠和快速的分布式任务重试和分布式任务调度平台
✅️ 可重放,可管控、为提高分布式业务系统一致性的分布式任务重试平台
✅️ 支持秒级、可中断、可编排的高性能分布式任务调度平台
项目特性
-
易用性 业务接入成本小。避免依赖研发人员的技术水平,保障稳定性
-
灵活性 能够动态调整配置,启动 / 停止任务,以及终止运行中的任务
-
操作简单 分钟上手,支持 WEB 页面对任务数据 CRUD 操作。
-
数据大盘 实时管控系统任务数据
-
分布式重试任务 支持多样化退避策略、多样化重试类型、流量管控等
-
分布式调度任务 提供丰富的任务触发策略、任务分片、停止恢复、失败重试等
-
工作流任务编排 仿钉钉设计的流程编排引擎,支持复杂的功能编排、失败重试、告警等
-
任务数据管理 可以做到数据不丢失、数据一键回放
-
容器化部署 服务端支持 docker 容器部署
-
高性能调度平台 支持服务端节点动态扩容和缩容
-
支持多样化的告警方式 邮箱、企业微信、钉钉、飞书、自定义告警
-
支持多种流行数据库 mysql、mariadb、sqlserver、oracle、postgres 数据库
开源组件对比
项目 | Quartz | Elastic-Job | XXL-JOB | PowerJob | Snail Job |
---|---|---|---|---|---|
跨语言能力 | 不支持 | 不支持 | 不支持 | 不支持 | 支持 java (1.8/17)、Python、Go 客户端 (开发中) |
定时调度 | Cron | Cron | Cron | CRON、固定频率、固定延迟、OpenAPI | 1. 定时任务 2. 秒级任务 (无需依赖外部中间件) 3. 固定频率 4.OpenAPI |
重试任务 | 不支持 | 不支持 | 不支持 | 不支持 | 1. 支持本地 & 远程重试模式 2. 支持各种常用组件的重试 比如 dubbo/feign 3. 支持多种退避策略 4. 丰富的重试风暴管控手段 ...... |
任务编排 | 不支持 | 不支持 | 不支持 | 支持 | 仿钉钉工作流设计,颜值高、体验好 |
分布式计算 | 不支持 | 静态分片 | 广播 | 支持 | 1. 广播执行 2. 集群执行 3. 静态分片 4. 动态分片 |
多语言 | Java | 1. Java 2. 脚本任务 | 1. Java 2. 脚本任务 | 支持 | 1. Java 2. CMD (本地脚本、远程脚本、参数传人) 3. PowerShell (本地脚本、远程脚本、参数传人) 3. Shell (本地脚本、远程脚本、参数传人) 4. HTTP 任务 |
用户管理 | 不支持 | 支持 | 支持 | 不支持 | 完备的用户管理和权限管理 |
安全 Token | 不支持 | 不支持 | 支持 | 不支持 | 支持 |
可视化 | 无 | 弱 | 1. 历史记录 2. 运行日志(不支持存储)3. 监控大盘 | 支持 | 1. 历史记录 2. 实时日志 (支持持久化、可视化) 3. 监控大盘 (实时调度数据展示) 4. 失败调度排名 5. 在线集群查看等 |
可运维 | 无 | 启用、禁用任务 | 1. 启用、禁用任务 2. 手动运行任务 3. 停止任务 | 支持 | 1. 启用、禁用任务 2. 手动运行任务 3. 停止任务 4、手动重试 |
报警监控 | 无 | 邮件 | 邮件 | 邮件 | 支持配置多种告警场景,通知方式支持: 1. 邮件 2. 钉钉 3. 企微 4. 飞书 5、Webhook |
性能 | 每次调度通过 DB 抢锁,对 DB 压力大 | ZooKeeper 是性能瓶颈 | 采用 Master 节点调度,Master 节点压力大 | 无锁化设计 | 系统采用多 bucket 模式,借助负载均衡算法,确保每个节点能够均衡处理任务,同时支持无限水平扩展,轻松应对海量任务调度 |
接入成本 | 只依赖 DB 接入成本低 | 需引入 Zookeeper 增加系统复杂性和维护成本 | 只依赖 DB 接入成本低 | 依赖 DB 接入成本低 | 只依赖 DB 接入成本低 |
更新日志
-
增加 WebSocket 实时获取重试任务和定时任务日志【新增】
-
重试新增OpenApi支持查询重试任务、触发、状态更新【新增】
-
定时任务支持通过名称模糊查询【新增】
-
死信表新增 groupId 和 sceneId 字段【新增】
-
重试任务支持"防止任务重复拉取"配置【新增】
-
增加重试任务列表更新时间字段【新增】
-
回滚死信表数据时支持异常明确提示(存在重复数据)【新增】
-
内置 HTTP 执行器支持自定义响应结果判断【新增】
-
GitHub Action 构建优化,支持 arm64 镜像 【优化】
-
修复重试次数传播机制错误问题【BUG】
-
修复 CVE 漏洞并移除 log4j 【BUG】
-
修复随机等待退避策略的时间单位转换错误【BUG】
-
重构 RPC 命名结构,方便后续扩展【优化】
-
翻译系统中文字符串为英文【优化】
-
新增ES、Mongo日志存储插件【新增】
-
新增SSO登录插件【新增】
-
优化SQL性能 【优化】
-
修复重试序列化LocalDateTime失败问题【BUG】
-
修复滑动窗口上报窗口时间错误【BUG】
-
优化重试任务列表和死信列表查询按钮显示问题 【优化】
-
重试任务列表增加更新时间 2.修复重试列表更新时间title【优化】
-
修复场景阻塞策略错误问题【BUG】
-
重试任务达到最大重试次数后可以手动执行【优化】
-
优化重试列表更多按钮的下拉框样式【优化】
注意本次重点重构了重试模块的流程,由之前的同步调度客户端改为异步调度客户端. 将支持更高并发的调度同时大大提高服务端的稳定性
MYSQL变更(其他DB变更请自行同步)
全量的SQL请参考项目 /doc/sql/x.sql
alter table sj_retry_dead_letter add group_id bigint not null comment '组Id' after group_name; alter table sj_retry_dead_letter add scene_id bigint not null comment '场景ID' after scene_name; alter table sj_retry add group_id bigint not null comment '组Id' after group_name; alter table sj_retry add scene_id bigint not null comment '场景ID' after scene_name; drop index idx_namespace_id_group_name_retry_status on sj_retry; drop index idx_namespace_id_group_name_scene_name on sj_retry; create index idx_retry_status_bucket_index on sj_retry (retry_status, bucket_index); alter table sj_retry drop key uk_name_task_type_idempotent_id_deleted; alter table sj_retry add constraint uk_scene_tasktype_idempotentid_deleted unique (scene_id, task_type, idempotent_id, deleted);
项目地址
方便的话给项目一个 star,你的支持是我们前进的动力!
先睹为快

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
C++ Web 框架 Paozhu 1.9.2 发布
目前 PaozhuC++ Web Framework 已经完成一个完整的 web 生态开发框架,内置 HTTP/1 HTTP/2 ORM 支持基于 ASIO 协程 ORM,目前全球第二款开源基于 ASIO 协程 MySQL Client 从上一个版本发布后经过一个月生产环境考验和bug修复,目前稳定性大大加强,每天可以抵抗大量采集机器人和黑客软件扫描。 作为新一代C++ WebServer 简洁、优雅开发深受C++开发者喜爱。 使用C++ 20协程可以并发上百万链接。 下面是ORM 一个数据库使用协程例子。 //@urlpath(null,updates) asio::awaitable<std::string> techempowerupdates(std::shared_ptr<httppeer> peer) { peer->type("application/json; charset=UTF-8"); peer->set_header("Date", get_gmttime()); unsigned int get_num = ...
- 下一篇
JetLinks 2.3 发布,开源物联网平台
JetLinks 开源物联网平台 JetLinks 基于 Java8、Spring Boot 2.x、WebFlux、Netty、Vert.x、Reactor 等开发,是一个开源的企业级物联网基础开发平台,实现了物联网相关以及相关业务开发的众多基础功能,能帮助你快速建立物联网相关业务系统。 在线完整功能演示地址: https://demo.jetlinks.cn 用户名:test 密码: test123456 测试用户未开放全部权限,建议本地运行社区版体验或者联系商务试用企业版。 核心特性 开放源代码 全部源代码开放,可自由拓展功能,不再受制于人。前后端分离,接口全开放。 统一设备接入,海量设备管理 TCP/UDP/MQTT/HTTP、TLS/DTLS、不同厂商、不同设备、不同报文、统一接入,统一管理。 规则引擎 灵活的规则模型配置,支持多种规则模型以及自定义规则模型。设备告警,场景联动,均由统一的规则引擎管理。 超轻量级基于 SQL 的实时处理引擎 , 让数据处理更简单. 多种数据存储策略 支持灵活的设备数据存储策略,可将不同类型的设备数据存储到不同的地方。 技术栈 Spring B...
相关文章
文章评论
共有0条评论来说两句吧...