软件介绍
XXL-JOB Free Edition 是一个面向编程开发者的分布式任务调度平台。我们可以通过XXL-JOB将开源代码接入很多公司的线上产品线,让你开始完成任务调度,提高开发效率。
XXL-工作自由软件功能
1.简单:通过网页支持任务的CRUD操作,操作简单,一分钟即可启动;2.动态:支持任务状态的动态修改、任务的启动/停止、运行任务的终止,即时生效;
3.调度中心HA(集中式):调度采用集中式设计,调度中心自己开发调度组件,支持集群部署,可以保证调度中心HA;
4.执行器HA(分布式):任务的分布式执行。任务“执行者”支持集群部署,可以保证任务执行HA;
5.注册中心:执行者会定期自动注册任务,调度中心会自动发现注册的任务并触发其执行。同时还支持手动输入执行器地址;
6.灵活性:一旦有新的执行器机器上线或下线,任务会在下次调度时重新分配;
7.路由策略:部署executor集群时提供了丰富的路由策略,包括:第一、最后、轮询、随机、一致哈希、最少使用、最近未使用、故障转移、忙转移等。
8.故障转移:当选择“故障转移”作为任务路由策略时,如果执行器集群中的一台机器出现故障,它将自动进行故障转移,切换到正常的执行器上发送调度请求。
9.阻塞处理策略(Blocking handling strategy):当调度过于密集,以致于执行者无法处理时的处理策略。策略包括:单机串行(默认),丢弃后续排班,覆盖之前排班;
10.任务超时控制:支持用户自定义任务超时,任务超时运行会主动中断任务;
1.任务失败重试:用户可以定义任务失败重试的次数。当一个任务失败时,它会根据预设的失败重试次数主动重试;其中,分片任务支持分片粒度失败重试;
12、任务失败报警;提供默认邮件故障报警,预留扩展接口,可轻松扩展短信、钉钉等报警模式;
13.碎片化广播任务:当执行者集群部署时,当任务路由策略为“碎片化广播”时,一个任务调度会广播触发集群中的所有执行者执行一个任务,碎片化任务可以根据碎片化参数进行开发;
14.动态分片:分片广播任务以执行器为维度进行分片,支持执行器集群的动态扩展、分片数量的动态增加和业务处理的协调;当进行大规模的业务操作时,可以显著提高任务处理能力和速度。
15.事件触发:除了“Cron模式”和“任务依赖模式”触发任务执行外,还支持基于事件的任务触发模式。调度中心提供API服务触发任务的单次执行,可以根据业务事件灵活触发。
16.任务进度监控:支持实时监控任务进度;
17.滚动实时日志:支持在线查看调度结果,可滚动实时查看执行人输出的完整执行日志;
18.GLUE:提供了Web IDE,支持任务逻辑代码的在线开发、动态发布、实时编译和生效,省略了部署和上线的过程。支持30个版本的版本历史回溯。
19.脚本任务:支持GLUE模式下脚本任务的开发和运行,包括Shell、Python、NodeJS、PHP、PowerShell等多种类型的脚本;
20.命令行任务:原生提供通用命令行任务处理程序(Bean task,“commandjobhandler”);业务端只需要提供命令行;
1.任务依赖:支持子任务依赖的配置。当父任务完成并成功执行时,它将主动触发子任务的执行。多个子任务用逗号分隔。
22.一致性:“调度中心”通过DB lock保证集群分布式调度的一致性,一次任务调度只会触发一次执行;
23.自定义任务参数:支持任务参与的在线配置和调度,即时生效;
24.调度线程池:调度系统的多线程触发调度操作,保证调度的准确执行而不被阻塞;
25.数据加密:对调度中心与执行者之间的通信进行加密,提高调度信息的安全性;
26.邮件报警:任务失败时支持邮件报警,可以配置多个邮箱发送报警邮件;
27.推送maven中央仓库:向maven中央仓库推送最新稳定版本,方便用户访问和使用;
28.运行报告:支持实时查看运行数据,如任务数、调度次数、执行器数等。以及调度报告,如调度日期分布图、调度成功分布图等。
29.完全异步:任务调度过程完全异步设计和实现,如异步调度、异步操作、异步回调等。,可以有效的峰值化密集型调度的流量,理论上支持任意时长任务的运行;
30.跨语言:调度中心和执行器提供独立于语言的RESTful API服务。任何第三方语言都可以对接调度中心或相应实现executor。此外,还提供了其他跨语言的方案,如“多任务模式”和“http job handler”;
31.国际化:调度中心支持国际化设置,提供中文和英文两种可选语言,默认为中文;
32.容器化:提供docker官方形象,实时更新推送dockerhub,进一步实现产品开箱;
3.线程池隔离:通过调度隔离拆分线程池,慢速任务自动降级为“慢速”线程池,避免耗尽调度线程,提高系统稳定性;
34.用户管理:支持在线管理系统用户,有两种角色:管理员和普通用户;
35.权限控制:权限控制是在执行机构的维度上进行的。管理员拥有完全权限,普通用户需要分配执行者权限才能允许相关操作。