🔥🔥🔥一款兼具 “高性能、高颜值、高活跃” 的分布式任务调度与重试平台 1.1.0 发布
🔥🔥🔥 灵活,可靠和快速的分布式任务重试和分布式任务调度平台
✅️ 可重放,可管控、为提高分布式业务系统一致性的分布式任务重试平台 ✅️ 支持秒级、可中断、可编排的高性能分布式任务调度平台
注意
由于本次升级新增了动态分片、工作流上下文等功能,升级时请务必服务端、客户端同时升级
号外
基于Python的客户端已经完成, 近日就会发布内测版本, 比java更轻量、更适合执行脚本.了解更多请加群 https://snailjob.opensnail.com/docs/group_chat.html
开源地址: https://gitee.com/opensnail/snail-job-python
项目特性
-
易用性 业务接入成本小。避免依赖研发人员的技术水平,保障稳定性
-
灵活性 能够动态调整配置,启动 / 停止任务,以及终止运行中的任务
-
操作简单 分钟上手,支持 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. 【信创】支持达梦数据库【新增】
2. 更新密码策略:字母、数字、特殊字符,任意2种组成,6-20位【优化】
3. 工作流批次、重试批次、重试日志添加时间筛选(默认查询一个月)【新增】
4. 修复通知配置分页显示问题【BUG】
5. github工作流添加maven cache【优化】
6. mp自动填充createDt,updateDt字段【优化】
7. 提取所有insertBatch xml语句到template【优化】
8. 优化空间切换组件样式【优化】
9. 用户列表添加[序号]、[创建时间]字段【新增】
10. 所有搜索框允许清除【优化】
11. 修复工作流搜索参数定义错误【BUG】
12. 工作流批次按照任务名称查询体验【优化】
13. 定时任务批次按照任务名称查询体验【优化】
14. 修复前端toString()空指针问题【优化】
15. 命名空间非活跃条目显示图标【优化】
16. 登录界面可以做一下键盘回车登录【优化】
17. updateBatch系列脚本增加update_dt=CURRENT_TIMESTAMP【优化】
18. 页面路径修改 notify/scene => notify/config 【优化】
19. 优化客户端发送消息是组为空的校验【优化】
20. 重构钉钉消息发送工具类(优化)
21. 工作流支持全局上下文传递(新增)
22. 支持动态分片(Map/MapReuce)(新增)
23. 修复oracle超过1000批量删除失败问题(BUG)
24. 定时任务阻塞策略新增恢复类型(新增)
25. 工作流阻塞策略新增恢复类型(新增)
26. sj_distributed_lock 分布式锁表去掉自增主键(优化)
27. 优化决策节点手动校验逻辑并支持手动校验按钮(优化)
28. 工作流决策节点判定逻辑使用上下文进行判断(优化)
29. 工作流批次详情新增实时刷新功能(新增)
30. 工作流和定时任务实时日志新增自动刷新功能(新增)
31. 修复实时日志展示重复问题(BUG)
32. 重试次数支持最低为0次(优化)
33. 登录新增验证码功能(新增)
34. 重试场景随机和固定间隔重试间隔新增最低10s限制(优化)
35. 任务项列列表新增任务名称字段(优化)
36. 升级mybatis-plus版本(3.5.6->3.5.7)(升级)
37. 修复退出登录和修改密码未重定向到登录页问题(BUG)
38. 工作流支持页面初始化上下文信息(新增)
39. 空间、组、重试场景等删除功能
40. 优化其他已知问题
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; ALTER TABLE `sj_workflow` ADD COLUMN `wf_context` text NULL 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.2.0-beta1 TODO List
1. 通知场景绑定多个任务
2. 支持通过API/http接口动态管理任务
3. 新增http的调度任务
核心功能
项目地址
方便的话给项目一个 star,你的支持是我们前进的动力!
先睹为快

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
给 「大模型初学者」 的 LLaMA 3 核心技术剖析
编者按: 本文旨在带领读者深入了解 LLaMA 3 的核心技术 ------ 使用 RMSNorm 进行预归一化、SwiGLU 激活函数、旋转编码(RoPE)和字节对编码(BPE)算法。RMSNorm 技术让模型能够识别文本中的重点,SwiGLU 激活函数则如同"神笔",让模型生成的文本更加突出重点且易于理解;RoPE 赋予了模型处理序列中词语位置的灵活性,而 BPE 算法则有效提升了模型处理长文本的能力。 从开发环境配置到项目逻辑梳理,各组件的介绍与构建,再到模型组件的整合,本文将带你一步步走过从文本数据分词到创建嵌入、从注意力机制到多头注意力实现的全过程。仅需具备一定的 Python 编程基础,并对神经网络和 Transformer 架构有基本的认识,便能跟随本文的指引,观察 LLaMA 3 如何根据输入生成输出,见证它如何基于输入生成连贯且有意义的文本。 本文作者提供了完整的代码示例和详细的指导文档,无需 GPU ,仅需 17 GB RAM 即可开始实践。无论是希望深化理论认识还是渴望实践技能提升,本文都将是不可多得的优质内容。 作者 | Fareed Khan 编译 | 岳扬 ...
- 下一篇
融合 JPA 和超强查询的 sqltoy-orm 5.6.11 发版,增加对 mogdb 支持
开源地址: github:https://github.com/sagframe/sagacity-sqltoy gitee:https://gitee.com/sagacity/sagacity-sqltoy idea 插件 (可直接在 idea 中检索安装):https://github.com/imyuyu/sqltoy-idea-plugin sqltoy 脚手架项目:https://gitee.com/momoljw/sss-rbac-admin sqltoy lambda 项目:https://gitee.com/gzghde/sqltoy-plus 更新内容 1、新增加对MogDB数据库的支持 感谢@legendary扩展实现2、针对updateSaveFetch操作完善更新时数据版本控制和自动修改 感谢@波特兔提出issue和测试3、优化SqlUtil中针对sql多行注释的处理,兼容极端场景4、优化SqlExecuteStat,改进针对业务代码定位的处理,兼容Proxy动态代理5、优化Concat、ConcatWS跨数据库函数自适应类,兼容oracle11g JPA 部...
相关文章
文章评论
共有0条评论来说两句吧...