rust 重写 xxl-job 的项目 ratch-job v0.1.5 版本发布,控制台支持鉴权与数据权限管控。

141 天前
 heqingpan

v0.1.5 版本更新内容

项目地址: ratch-job

项目计划

  1. 完成一个包含核心内容,满足大部分用户使用场景的初始正式版本;
  2. 追平 xxl-job admin 现有的功能;
    1. 支持任务管理
    2. 支持按任务执行计划和指定的触发策略调度任务
    3. 支持查看任务执行记录
    4. 支持查看执行器对应的任务执行日志
    5. 控制台支持用户管理、登陆验证与权限控制
  3. 完全兼容 xxl-job 协议前提下增强调度平台功能
    1. 任务失败重试支持配置对应的超时失败、重试次数与重试间隔;( xxl-job 不支持配置重试间隔)
    2. 控制台触发支持指定执行器进行触发;
    3. 调度类型计划支持固定延时调度:上一个任务完成后延时固定秒数后新触发一次任务;
    4. 任务调度失败,通过内置消息监听中心支持配置多种渠道通知;
    5. 支持任务导入、导出
    6. 支持应用数据备份、恢复
    7. 支持 open api 管理 ratch-job 的任务调度;目前核心接口已完成,待增加认证机制与对应的文档;
    8. 支持 DAG 调度
  4. 需要增强协议后增加功能 (需要等上面的内容稳定后才会开始)
    1. 支持自定义分片任务;(目前 xxl-job 只有全量分片任务)
    2. 移除任务平台主动对执行器服务发起请求的网络路由强依赖,需要使用类似 grpc 这类的长链接协议;

性能

环境 任务数 任务调度 tps cpu 使用率(单核占比) 内存(M)
docker 100 100 5.2% 20M
ubuntu 1000 1000 32% 80M
mac m1 2000 2000 18% 90M
ubuntu 5000 5000 107% 270M
ubuntu 10000 10000 220% 810M
2795 次点击
所在节点    程序员
24 条回复
zhangxudong
140 天前
@heqingpan #17 我的场景是某个时间点系统临时需要维护,那我就需要看一下这个时间点会有哪些 job 要跑,我需要先临时停掉这些 job ,等维护完之后再启动这些 job
heqingpan
140 天前
@zhangxudong

看起来你是想获取未来一小段时间哪些任务即将要运行。
未来的调度时间,对 cron 这种比较好计算,对后面的执行后固定延迟这种不好计算。

----

使用现有的全局最近执行记录功能,可能也能基本解决你这个场景的问题。

1. 维护应用系统前,看看当前是否有正在运行的任务,没有则开始维护
2. 维护应用过程如果有任务调度会直接失败,最近执行记录有对应失败的记录。
3. 维护应用完成后,查看最近执行失败的记录,手动触发。后续的任务也会自动正常调度。
上面过程可能存在边界情况,运行中的任务被杀进程。这种就要业务系统判断是否要手动补触发。

你看看这样处理是否也可以解决你们的问题?
yehoha
128 天前
xxx-job 不支持固定延迟,ratch-job 支持么
heqingpan
128 天前
@yehoha 目前还没有支持,有计划支持(已写在上面的第 3 步计划中),大概后面第二个版本可支持。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1126891

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX