第二届开放原子大赛ICT领域专区赛4大AI赛项,120万奖金池,技术专家辅导,立即报名,等你来战!
🔥🔥🔥 灵活,可靠和快速的分布式任务重试和分布式任务调度平台
✅️ 可重放,可管控、为提高分布式业务系统一致性的分布式任务重试平台 ✅️ 支持秒级、可中断、可编排的高性能分布式任务调度平台
2024年度总结
1. 完成品牌升级,将easy-retry更名为Snail-Job,明确了系统定位并提升了品牌影响力。 2. 完成管理系统从Vue 2升级至Vue 3,优化了界面美观性与用户交互体验,特别感谢Soybean-Admin项目的支持。 3. 新增Map和MapReduce功能,全面实现了Snail-Job的所有核心功能需求。 4. 新增Python、Go和Java 8客户端,扩展了多平台客户端支持。 5. 全年共发布17个版本,持续优化和迭代。 6. 处理112个issues,成功关闭50个,进一步提升了项目的稳定性。 7. 荣获Gitee“最有价值开源项目”(GVP)奖项,肯定了项目的行业影响力。 8. 加入GitCode开源摘星计划(G-Star计划),进一步扩大了项目的开源生态。 9. 已成功接入上千家企业,持续推动业务落地与扩展。
项目特性
-
易用性 业务接入成本小。避免依赖研发人员的技术水平,保障稳定性
-
灵活性 能够动态调整配置,启动 / 停止任务,以及终止运行中的任务
-
操作简单 分钟上手,支持 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 接入成本低 |
更新日志
- 新增Grpc通讯模块【新增】
- 修改服务端默认端口号为17888【优化】
- 设置客户端client为-1时,支持随机端口号【新增】
- 邮箱通知添加额外的自定义属性【新增】
- 增加删除功能OpenApi【新增】
- isRetry改为retryStatus 【优化】
- 将内置执行器移入builtin包【优化】
- 调整客户端注册逻辑;使用主节点模式对客户端进行续签【优化】
- 优化重试场景、定时任务、工作流告警通知配置【优化】
- 手动执行任务/工作流支持传入临时参数【新增】
- 定时任务新增负责人选项【新增】
- 定时任务增加执行器信息搜索条件【新增】
- 支持无客户端时告警功能【新增】
- 客户执行失败支持显示失败原因新增】
注意 本次新增了Grpc协议,后续计划逐渐废弃Netty请大家尽快切换
snail-job.rpc-type=grpc
MYSQL变更(其他DB变更请自行同步)
全量的SQL请参考项目 /doc/sql/x.sql
ALTER TABLE `sj_notify_config` ADD COLUMN `notify_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '通知名称', DROP COLUMN `business_id`; ALTER TABLE `sj_job` ADD COLUMN `notify_ids` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表', ADD COLUMN `owner_id` bigint(20) NULL COMMENT '负责人id'; ALTER TABLE `sj_retry_scene_config` ADD COLUMN `notify_ids` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表'; ALTER TABLE `sj_workflow` ADD COLUMN `notify_ids` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表';
项目地址
-
官网: http://snailjob.aizuda.com/
-
gitee: https://gitee.com/aizuda/snail-job
-
github:https://github.com/aizuda/snail-job
-
体验地址:http://snailjob.aizuda.com/docs/preview.html
方便的话给项目一个 star,你的支持是我们前进的动力!
还没有评论,来说两句吧...