分布式任务调度框架,如何进行技术选型决策?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2164个文字,预计阅读时间需要9分钟。
一、背景及文档为解决分布式场景下定时任务重复执行的问题,提供解决方案选型参考。主要描述来自互联网资料整合,相关链接位于文档底部。
二、主要需求:
1. 避免重复执行
2.动态CRUD操作
一、背景
本文档为解决分布式场景下定时任务重复执行的问题提供选型参考。其中大部分描述来自互联网资料整合,相关链接在文档底部。
主要需求如下:
1.避免重复执行
2.动态CRUD,如动态启停、业务中允许更新执行时间。
3.失效转移、负载均衡等分布式作业管理
4.定时任务管理,如查看当前任务列表、手动启停等。
5.日志回溯、异常报警等。
二、概览
经过检索找到如下几种用户群较多的候选框架。
quartz是最经典最著名的任务调度框架,其他候选至少初期都是基于它开发,进而改进了quartz的问题。
Quartz关注点在于定时任务而非数据,并无一套根据数据处理而定制化的流程。虽然Quartz可以基于数据库实现作业的高可用,但缺少分布式并行调度的功能。同时它通过独占锁来保证只有一个节点执行,没有负载均衡,并且需要持久化任务信息到业务数据表,有10张以上,对业务有侵入性。最后,调度和执行并存于同一个项目,相互影响性能。
结论:由于以上原因,实际场景不会直接选择quartz作为调度框架。
本文共计2164个文字,预计阅读时间需要9分钟。
一、背景及文档为解决分布式场景下定时任务重复执行的问题,提供解决方案选型参考。主要描述来自互联网资料整合,相关链接位于文档底部。
二、主要需求:
1. 避免重复执行
2.动态CRUD操作
一、背景
本文档为解决分布式场景下定时任务重复执行的问题提供选型参考。其中大部分描述来自互联网资料整合,相关链接在文档底部。
主要需求如下:
1.避免重复执行
2.动态CRUD,如动态启停、业务中允许更新执行时间。
3.失效转移、负载均衡等分布式作业管理
4.定时任务管理,如查看当前任务列表、手动启停等。
5.日志回溯、异常报警等。
二、概览
经过检索找到如下几种用户群较多的候选框架。
quartz是最经典最著名的任务调度框架,其他候选至少初期都是基于它开发,进而改进了quartz的问题。
Quartz关注点在于定时任务而非数据,并无一套根据数据处理而定制化的流程。虽然Quartz可以基于数据库实现作业的高可用,但缺少分布式并行调度的功能。同时它通过独占锁来保证只有一个节点执行,没有负载均衡,并且需要持久化任务信息到业务数据表,有10张以上,对业务有侵入性。最后,调度和执行并存于同一个项目,相互影响性能。
结论:由于以上原因,实际场景不会直接选择quartz作为调度框架。

