XXL-JOB是一款轻量级分布式任务调度系统,提供web管理界面,支持任务创建、维护及在线动态调度等功能,适用于Linux和Windows环境。
XXL-JOB是一个轻量级的分布式任务调度平台,设计旨在快速开发、易于学习且具备扩展性。该系统已经开源,并被多家公司用于线上产品中。
XXL-JOB的主要特点包括:
1. 简单:用户可以通过Web页面进行任务管理(创建、读取、更新和删除),操作简便,一分钟内即可上手。
2. 动态:支持动态修改任务状态及启动/停止功能,并可即时终止正在运行的任务。
3. 高可用调度中心设计:调度中心采用自研组件并能集群部署以保证高可用性。
4. 执行器的分布式处理能力:“执行器”可以集群部署,确保任务执行的高可靠性。
5. 注册机制:执行器会定期自动向“调度中心”注册自身信息,“调度中心”则根据这些信息来触发相应的任务。同时支持手动录入执行器地址。
6. 弹性扩展:如果新的执行器加入或离开系统,在下一次调度时,任务会被重新分配到现有的执行器中运行。
7. 路由策略:提供多种路由策略以适应不同的应用场景,包括但不限于第一个、最后一个、轮询等模式。
8. 故障转移机制:当选择“故障转移”作为任务的路由策略时,在某台执行器出现故障的情况下,调度请求会被自动转移到其他健康的执行器上继续运行。
9. 阻塞处理策略:在高负载情况下提供多种策略来保证系统的稳定性和性能。默认单机串行模式下,系统会等待当前任务完成后再启动下一个任务;也可以选择丢弃后续的调度或覆盖之前的调度请求。
10. 任务超时控制机制:允许设置自定义的任务执行时间限制,在达到设定的时间后将自动终止任务以防止长时间占用资源。
11. 失败重试功能:支持为每个任务单独配置失败后的重试次数,当遇到错误时系统会按照预设的次数进行自动重试。对于分片类型的任务也提供了粒度级别的失败处理策略。
12. 任务失败告警机制:默认通过邮件发送通知给相关人员,在此基础上还预留了接口用于扩展短信或钉钉等其他形式的通知方式。
13. 分布式执行模式:“分片广播”是一种特殊的路由策略,它会将一个调度请求同时传递到所有的执行器实例上进行处理。这种方式非常适合大数据量的业务场景中使用以提高整体性能和效率。
14. 动态调整分片数量:允许根据实际需求灵活地增加或减少参与任务处理的服务节点数(即“执行器”),从而动态改变每份数据的工作负载分配,进而改善系统响应时间和吞吐量。
15. 事件触发机制:除了定时调度之外,还支持基于特定业务逻辑的即时调度。通过提供API接口允许用户灵活地控制何时何地启动任务运行。
16. 进度监控功能:可以实时跟踪各个任务的状态和进度情况。
17. 实时日志查看器:“Rolling”模式下能够在线滚动显示执行过程中的完整输出信息,便于调试问题或审计历史操作记录。
18. 在线代码编辑器(GLUE):提供一个Web IDE用于开发、测试以及发布新版本的任务逻辑。支持回溯到前30个版本的历史代码进行对比分析和恢复工作。
19. 脚本任务执行模式:除了传统的Java Bean方式之外,还允许使用各种脚本语言编写并运行相应的作业程序(如Shell, Python等)。
20. 命令行任务处理器:提供了一种简单的方式让用户通过命令行输入来定义和调度复杂的业务逻辑流程。
21. 依赖关系管理功能:支持设置父子层级的任务关联规则,当父级完成且成功时可以自动触发子级的执行。多个子任务可以通过逗号进行分隔以表示它们之间的并行或串行顺序。
22. 数据一致性保证:“调度中心”使用数据库锁机制确保在分布式环境下的一致性操作,即任何给定的任务只会在一个节点上被执行一次。
23. 自定义参数配置:可以在Web界面中为每个任务单独设置输入参数,并且这些更改会立即生效而无需重启服务。
24. 调度线程池管理机制:通过多线程模型来触发和执行调度操作,以确保定时作业能够按时准确地运行并避免被阻塞。
25. 数据加密传输保护措施:在“调度中心”与各个执行器之间通信时采用数据加密技术增强信息的安全性。
26. 邮件报警功能:当任务失败后可以发送邮件通知给指定的收件人地址列表,便于及时发现和处理问题。
27. Maven仓库集成能力:最新的稳定版本会被推送到Maven中央库中