🔥🔥🔥一款兼具 “高性能、高颜值、高活跃” 的分布式任务调度与重试平台 1.1.0 Beta2 发布

来源: 投稿
作者: SnailJob
2024-07-07 22:34:00

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

✅️ 可重放,可管控、为提高分布式业务系统一致性的分布式任务重试平台 ✅️ 支持秒级、可中断、可编排的高性能分布式任务调度平台

号外

基于Python的客户端已经完成, 近日就会发布内测版本, 比java更轻量、更适合执行脚本.了解更多请加群 http://snailjob.aizuda.com/

项目特性

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

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

  • 操作简单 分钟上手,支持 WEB 页面对任务数据 CRUD 操作。

  • 数据大盘 实时管控系统任务数据

  • 分布式重试任务 支持多样化退避策略、多样化重试类型、流量管控等

  • 分布式调度任务 提供丰富的任务触发策略、任务分片、停止恢复、失败重试等

  • 工作流任务编排 仿钉钉设计的流程编排引擎,支持复杂的功能编排、失败重试、告警等

  • 任务数据管理 可以做到数据不丢失、数据一键回放

  • 容器化部署 服务端支持 docker 容器部署

  • 高性能调度平台 支持服务端节点动态扩容和缩容

  • 支持多样化的告警方式 邮箱、企业微信、钉钉、飞书、自定义告警

  • 支持多种流行数据库 mysql、mariadb、sqlserver、oracle、postgres 数据库

开源组件对比

项目 Quartz Elastic-Job XXL-JOB PowerJob Snail Job
定时调度 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. 脚本任务 (开发中) 3. HTTP 任务 (开发中) 4. Kettle (开发中)
用户管理 不支持 支持 支持 不支持 完备的用户管理和权限管理
安全 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.1.0 Beta2 版本正式发布](https://www.bilibili.com/video/BV1WrhQeREMz/?share_source=copy_web&vd_source=72eed18cb8b12450707021aa92b90b6c)

1. 重构钉钉消息发送工具类(优化)
2. 工作流支持全局上下文传递(新增)
3. 支持动态分片(Map/MapReuce)(新增)
4. 修复oracle超过1000批量删除失败问题(BUG)
5. 定时任务阻塞策略新增恢复类型(新增)
6. 工作流阻塞策略新增恢复类型(新增)
7. sj_distributed_lock 分布式锁表去掉自增主键(优化)
8. 优化决策节点手动校验逻辑并支持手动校验按钮(优化)
9. 工作流决策节点判定逻辑使用上下文进行判断(优化)
10. 工作流批次详情新增实时刷新功能(新增)
11. 工作流和定时任务实时日志新增自动刷新功能(新增)
12. 修复实时日志展示重复问题(BUG)
13. 重试次数支持最低为0次(优化)
14. 登录新增验证码功能(新增)
15. 重试场景随机和固定间隔重试间隔新增最低10s限制(优化)
16. 任务项列列表新增任务名称字段(优化)
17. 升级mybatis-plus版本(3.5.6->3.5.7)(升级)
18. 修复退出登录和修改密码未重定向到登录页问题(BUG)
19. 工作流支持页面初始化上下文信息(新增)
20. 优化其他已知问题

MYSQL变更(其他DB变更请自行同步)

 全量的SQL请参考项目 /doc/sql/x.sql

ALTER TABLE `sj_distributed_lock` DROP INDEX `uk_name`;
ALTER TABLE `sj_distributed_lock` MODIFY COLUMN `id` bigint UNSIGNED NOT NULL COMMENT '主键';
ALTER TABLE `sj_distributed_lock` DROP PRIMARY KEY;
ALTER TABLE `sj_distributed_lock` ADD PRIMARY KEY (`name`) USING BTREE;
ALTER TABLE `sj_distributed_lock` DROP COLUMN `id`;
ALTER TABLE `sj_job_task` ADD COLUMN `mr_stage` tinyint NULL DEFAULT NULL COMMENT '动态分片所处阶段 1:map 2:reduce 3:mergeReduce';
ALTER TABLE `sj_job_task` ADD COLUMN `leaf` tinyint NOT NULL DEFAULT 1 COMMENT '叶子节点' AFTER `mr_stage`;
ALTER TABLE `sj_job_task` ADD COLUMN `task_name` varchar(255) NOT NULL DEFAULT '' COMMENT '任务名称';
ALTER TABLE `sj_job_task` ADD COLUMN `wf_context` text  NULL COMMENT '工作流全局上下文' ;
ALTER TABLE `sj_workflow_task_batch` ADD COLUMN `wf_context` text  NULL COMMENT '全局上下文' ;
ALTER TABLE `sj_workflow_task_batch` ADD COLUMN `version` int NOT NULL DEFAULT 1 COMMENT;

参与者设计开发人员名单
1. https://gitee.com/xlsea
2. https://gitee.com/xiaowoniu168
3. https://gitee.com/dhb52
4. https://gitee.com/zhengweilins
5. https://gitee.com/srzou
6. https://gitee.com/jcwang812

1.1.0-beta2 TODO List

 

  • 空间、组、重试场景等删除功能
  • 优化细节准备发布1.1.0正式版本

 

核心功能

项目地址

方便的话给项目一个 star,你的支持是我们前进的动力!

先睹为快

 

 

展开阅读全文
点击加入讨论🔥(1) 发布并加入讨论🔥
1 评论
3 收藏
分享
返回顶部
顶部