您现在的位置是:首页 > 文章详情

snail-job 1.5.0-beta1发布

日期:2025-04-26点击:6

🔥🔥🔥 灵活,可靠和快速的分布式任务重试和分布式任务调度平台

✅️ 可重放,可管控、为提高分布式业务系统一致性的分布式任务重试平台

✅️ 支持秒级、可中断、可编排的高性能分布式任务调度平台

项目特性

  • 易用性 业务接入成本小。避免依赖研发人员的技术水平,保障稳定性

  • 灵活性 能够动态调整配置,启动 / 停止任务,以及终止运行中的任务

  • 操作简单 分钟上手,支持 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 接入成本低

更新日志

  1. 增加 WebSocket 实时获取重试任务和定时任务日志【新增】

  2. 重试新增OpenApi支持查询重试任务、触发、状态更新【新增】

  3. 定时任务支持通过名称模糊查询【新增】

  4. 死信表新增 groupId 和 sceneId 字段【新增】

  5. 重试任务支持"防止任务重复拉取"配置【新增】

  6. 增加重试任务列表更新时间字段【新增】

  7. 回滚死信表数据时支持异常明确提示(存在重复数据)【新增】

  8. 内置 HTTP 执行器支持自定义响应结果判断【新增】

  9. GitHub Action 构建优化,支持 arm64 镜像 【优化】

  10. 修复重试次数传播机制错误问题【BUG】

  11. 修复 CVE 漏洞并移除 log4j 【BUG】

  12. 修复随机等待退避策略的时间单位转换错误【BUG】

  13. 重构 RPC 命名结构,方便后续扩展【优化】

  14. 翻译系统中文字符串为英文【优化】

  15. 新增ES、Mongo日志存储插件【新增】

  16. 新增SSO登录插件【新增】

  17. 优化SQL性能 【优化】

  18. 修复重试序列化LocalDateTime失败问题【BUG】

  19. 修复滑动窗口上报窗口时间错误【BUG】

  20. 优化重试任务列表和死信列表查询按钮显示问题 【优化】

  21. 重试任务列表增加更新时间 2.修复重试列表更新时间title【优化】

  22. 修复场景阻塞策略错误问题【BUG】

  23. 重试任务达到最大重试次数后可以手动执行【优化】

  24. 优化重试列表更多按钮的下拉框样式【优化】

注意本次重点重构了重试模块的流程,由之前的同步调度客户端改为异步调度客户端. 将支持更高并发的调度同时大大提高服务端的稳定性

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,你的支持是我们前进的动力!

先睹为快

原文链接:https://www.oschina.net/news/346816/snail-job-1-5-0-beta1
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章