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

来源: 投稿
作者: SnailJob
2024-11-17 23:12:00
AI总结

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

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

生态

Snail Job 目前已经支持 Python、Jdk1.8 客户端、Jdk17 客户端,后续即将支持 Go 客户端,有兴趣的加群了解.

了解更多请加群 https://snailjob.opensnail.com/docs/group_chat.html

Go 客户端: https://gitee.com/opensnail/snail-job-go

Python 客户端: https://gitee.com/opensnail/snail-job-python

Jdk1.8 客户端: https://gitee.com/aizuda/snail-job/tree/client-jdk8

XXLJOB迁移工具:https://snailjob.opensnail.com/docs/guide/migration_tool.html

项目特性

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

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

  • 操作简单 分钟上手,支持 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. 定时、重试任务清除时间一小时改为四小时【优化】
2. 修复日志清除BUG【BUG】
3. 信创arm环境下Docker官方镜像无法运行的问题【BUG】
4. 升级依赖包消除 CVE【优化】
5. 修复工作流编排下的http内置执行器在请求头中透传上下文中value包含中文问题【BUG】
6. 客户端日志上报组件 org.apache.log4j.MDC修改为org.slf4j.MDC 【优化】
7. 新增OpenApi功能【新增】
8. 修复Sharding和Map方法修饰符错误【BUG】
9. 内置脚本执行器支持自定义编码;【优化】
10. 内置http执行器支持工作流任务在请求头中透传工作流上下文内容【优化】
11. 定时任务使用恢复阻塞策略时,只重新调用不成功的任务【优化】
12. 修复MapReduce模式Reduce、MergeReduce阶段异常更新工作流上下文 【BUG】
13. 去除工作流节点stop相关重复代码【优化】
14. 修复日志清除BUG【BUG】
15. 修复服务端生成channel并发问题【BUG】
16. 修复客户端分片参数为ShardingJobArgs时不生效问题【BUG】
17. 按 pgsql 数据库补齐 大金 Mapper.xml【BUG】
18. 删除日志的全局开关【优化】
19. 修复oracle任务状态变更偶发失败情况【优化】
20. 升级MP版本3.5.8【优化】
21. 修复客户端获取线程时的并发问题【BUG】
22. 添加snail-job的window启动脚本.【新增】
23. 添加snail-job启动Shell脚本【新增】
24. 批次状态查询支持多选【新增】
25. 新增人大金仓数据库【新增】
26. 优化mybatis xml的加载顺序, 支持多个id同时加载【优化】
27. docker-compose.yaml 更新达梦镜像【优化】
28. 增加工作流决策节点模拟上下文校验结果返回【新增】
29. 优化json转换失败的日志【优化】
30. 增加第一个及最后一个客户端路由功能【新增】
31. 增加路由缓存定期清理功能【新增】
32. 修复Map任务问题不能重试【BUG】
33. PaginationInnerInterceptor不制定 dbType,由 mp 自动管理,解决 Oracle 11g分页兼容问题。【优化】
34. 去除动态tablePrefix配置【优化】
35. 修复Map/MapReduce重试问题,及手动暂停相关逻辑【BUG】
36. 新增CMD、PowerShell、Shell、Http相关执行器【新增】
37. 修复oracle任务状态变更偶发失败情况【BUG】
38. 重构结果处理逻辑【优化】
39. 去除定时任务结果更新的分布式锁【优化】
40. map和map reduce支持配置参数全路径传递【新增】
41. 优化客户端线程池,当获取缓存线程池时才设置并行度【优化】
42. 添加任务执行时间【新增】

 

项目地址

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

先睹为快

 

 

展开阅读全文
点击引领话题📣 发布并加入讨论🔥
0 评论
4 收藏
分享
AI总结
返回顶部
顶部