1. Job
1.1. 功能截图
1.2. 知识点
说明XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。XXL-JOB使用场景有电商业务,O2O业务、大数据作业数据同步、交易信息对账、清除过期用户信息、定期发送报表、消息推送等。传统的定时任务属于单点系统,job服务器宕机后调度服务不可用。并且定时服务和业务服务耦合在同一个项目中,这将导致一个问题,调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况下,此时调度系统的性能将大大受限于业务。XXL-JOB支持调度中心和执行器集群,解决服务器宕机问题,调度模块和任务模块完全解耦,提高系统可控度和稳定性。NTC对XXL-JOB的功能和界面进行优化,基于探针的方式启用和禁用执行器,方便应用接入。
任务中心分为调度模块和执行模块,调度模块(调度中心)负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块;执行模块(执行器)负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效;接收“调度中心”的执行请求、终止请求和日志请求等。
1.3. 功能详述
运行报表菜单展示了任务数量、调度次数和执行器数量等重要指标。按天统计了任务成功、失败和运行中等状态的数量和比例。并且可以自定义选择时间范围进行查看。
任务管理菜单我们提供了任务的新增、修改、删除、查询、导入、导出、执行、启动、停止、日志、详情和预警等操作。点击详情按钮,可以查看任务的详细信息、子任务和关系图。
调度日志菜单提供了查询任务日志、查看调度备注、查看执行备注、查看执行日志、终止任务和日志清理等功能。
执行器管理菜单提供了执行器的新增、修改、删除、查询、查看在线机器地址和查看执行器线程信息等功能。
预警通知菜单提供了预警规则和预警历史功能,每分钟对失败的任务进行预警。
1.3.1. 群组新增
通过群组列表->点击左上方新增按钮进入新增群组页面,如下图:
字段说明:
- 群组类型:群组类型包括单机和集群两种,单机表示当前只有一个节点,集群表示当前有多个节点
- 群组编号:群组的编号唯一
- 群组名称:默认与群组编号相同,也可以自定义
- 群组描述:填写群组的描述,可以为空
- 用户名:xxl-job用户名
- 密码:xxl-job密码
- 上下文:xxl-job请求上下文
- 服务器IP:填写服务器地址,用于连接xxl-job服务端
- 管理端口:该端口表示访问xxl-job的端口
1.3.2. 群组修改
通过群组列表->点击列表中修改按钮进入修改群组页面,如下图:
1.3.3. 群组删除
通过群组列表->点击列表中删除按钮删除群组,如下图:
1.3.4. 监控
通过群组列表->点击列表中监控按钮进入监控页面,如下图:
- 运行报表
运行报表菜单展示了任务数量、调度次数和执行器数量等重要指标。按天统计了任务成功、失败和运行中等状态的数量和比例。并且可以自定义选择时间范围进行查看。
- 任务管理
在任务管理菜单我们提供了任务的新增、修改、删除、查询、导入、导出、执行、启动、停止、日志、详情和预警等操作。点击详情按钮,可以查看任务的详细信息、子任务和关系图。
- 新增任务
点击新增按钮,输入执行器、任务描述、路由策略等信息进行新增任务
字段说明:
- 执行器:任务绑定的执行器,任务触发调度时将会自动发现注册成功的执行器, 实现任务自动发现功能; 另一方面也可以方便的进行任务分组。每个任务必须绑定一个执行器, 可在 "执行器管理" 进行设置。
- 任务描述:任务的描述信息,可以填写任务的作用,便于管理。
- 路由策略:当执行器集群部署时,提供丰富的路由策略,包括:
- FIRST(第一个):固定选择第一个机器。
- LAST(最后一个):固定选择最后一个机器。
- ROUND(轮询):轮流选择在线的机器。
- RANDOM(随机):随机选择在线的机器。
- CONSISTENT_HASH(一致性HASH):每个任务按照Hash算法固定选择某一台机器,且所有任务均匀散列在不同机器上。
- LEAST_FREQUENTLY_USED(最不经常使用):使用频率最低的机器优先被选举。
- LEAST_RECENTLY_USED(最近最久未使用):最久未使用的机器优先被选举。
- FAILOVER(故障转移):按照顺序依次进行心跳检测,第一个心跳检测成功的机器选定为目标执行器并发起调度。
- BUSYOVER(忙碌转移):按照顺序依次进行空闲检测,第一个空闲检测成功的机器选定为目标执行器并发起调度。
- SHARDING_BROADCAST(分片广播):广播触发对应集群中所有机器执行一次任务,同时系统自动传递分片参数;可根据分片参数开发分片任务。
- Cron:触发任务执行的Cron表达式。
- 运行模式:目前支持BEAN模式,任务以JobHandler方式维护在执行器端;需要结合 "JobHandler" 属性匹配执行器中任务。
- JobHandler:对应执行器中新开发的任务类“@NextJob”注解自定义的value值。
- 阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,包括:
- 单机串行(默认):调度请求进入单机执行器后,调度请求进入FIFO队列并以串行方式运行。
- 丢弃后续调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,本次请求将会被丢弃并标记为失败。
- 覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本地调度任务。
- 子任务:每个任务都拥有一个唯一的任务ID,当本任务执行结束并且执行成功时,将会触发子任务ID所对应的任务的一次主动调度。
- 任务超时时间:支持自定义任务超时时间,任务运行超时将会主动中断任务。
- 失败重试次数:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试。
- 任务参数:任务执行所需的参数。
- 修改任务
点击修改任务,对任务进行修改。
- 查询任务
提供根据执行器、任务状态、任务模式和JobHandler条件进行查询。
- 批量导出任务
选择任务,点击批量导出按钮,导出选择的任务列表和任务所在的执行器列表。
- 全部导出任务
点击全部导出按钮,导出全部任务列表和执行器列表。
导入任务
点击导入按钮,在其他环境导入任务列表和执行器列表,存在则跳过。
删除
选择任务,点击删除按钮,批量删除任务。
- 执行一次
点击执行一次按钮,可以手动触发一次任务的调度,不影响原有调度规则。
- 查询日志
点击查询日志按钮,可以查看任务历史调度日志。在历史调度日志界面可查看每次任务调度的调度结果、执行结果等,点击“执行日志”按钮可查看执行器完整日志。
- 注册节点
点击注册节点按钮,可以查看在线的执行器机器地址。
- 下次执行时间
点击下次执行时间,可以查看任务Cron表达式之后5次调度的时间。
- 启动和停止任务
点击是否启动按钮,可以启动和停止任务调度。
- 任务详情
点击详情按钮,跳转到任务详情页面,展示了概要、子任务和关系图菜单。
- 任务概要
点击详情按钮,显示任务的详细信息,包括任务ID、执行器ID,创建时间,更新时间等。
- 子任务
点击子任务菜单,展示当前任务的子任务列表。
关系图
点击关系图菜单,展示当前任务的所有后代任务的依赖关系。
- 调度日志
调度日志菜单提供了查询任务日志、查看调度备注、查看执行备注、查看执行日志、终止任务和日志清理等功能。
- 查询任务日志
提供根据调度时间范围、执行器、任务和状态等条件查询任务日志。
字段说明:
- 调度时间:"调度中心"触发本次调度并向"执行器"发送任务执行信号的时间。
- 调度结果:"调度中心"触发本次调度的结果,200表示成功,500或其他表示失败。
- 调度备注:"调度中心"触发本次调度的日志信息。
- 执行器地址:本次任务执行的机器地址。
- 运行模式:触发调度时任务的运行模式。
- 任务参数:本地任务执行的参数。
- 执行时间:"执行器"中本次任务执行结束后回调的时间。
- 执行结果:"执行器"中本次任务执行的结果,200表示成功,500或其他表示失败。
- 执行备注:"执行器"中本次任务执行的日志信息。
查看调度备注
点击调度备注查看按钮,可以查看任务调度备注。
查看执行备注
点击执行备注查看按钮,可以查看任务执行备注。
查看执行日志
点击执行日志按钮,可以查看业务代码中打印的完整日志。
- 终止任务
点击终止任务按钮,将会向本次任务对应的执行器发送任务终止请求,将会终止掉本次任务,同时会清空掉整个任务执行队列。
- 清理日志
点击清理按钮,支持选择不同类型的日志清理策略,选中后点击”确定”按钮即可进行日志清理操作。
- 执行器管理
执行器管理菜单提供了执行器的新增、修改、删除、查询、查看在线机器地址和查看执行器线程信息等功能。
- 新增
点击新增按钮,输入应用名、执行器名等信息进行新增执行器,目前支持自动注册执行器。应用启动的时候进行自动注册。
字段说明:
- 应用名:每个执行器集群的唯一标示, 执行器会周期性以应用名为对象进行自动注册。可通过该配置自动发现注册成功的执行器, 供任务调度时使用。
- 执行器名: 执行器的名称, 因为AppName限制字母数字等组成,可读性不强, 名称为了提高执行器的可读性。
- 注册方式:调度中心获取执行器地址的方式;
- 自动注册:默认方式,调度中心通过注册表可以动态发现执行器机器地址。
- 手动录入:人工手动录入执行器的地址信息,多地址逗号分隔,供调度中心使用。
- 机器地址:"注册方式"为"手动录入"时有效,支持人工维护执行器的地址信息。
- 删除
选择执行器,点击删除按钮,批量删除多个执行器。
- 修改
点击修改按钮,可以对执行器进行修改。
查询
提供根据应用名和执行器名条件进行查询。
查看在线机器地址
点击查看按钮,可以查看在线的执行器机器地址。
- 查看执行器线程信息
点击监控按钮可以查看执行器的线程信息,包括线程名称、线程状态、CPU耗时等信息。
点击线程名称,可以查看线程堆栈等信息。
1.3.5. 预警通知
点击预警通知按钮进入预警通知页面,如下图:
预警规则
点击预警规则子菜单查看预警规则列表,点击是否启用按钮开启和关闭规则,开启规则后会每间隔1分钟检查,有失败的任务进行预警。
点击通知配置按钮可以修改通知类型、通知方式等。
预警历史
点击预警历史子菜单查看预警历史列表,点击通知信息可以查看预警通知信息,点击详情可以查看失败任务详情。
查询
支持通过查询时间、是否发送、是否处理、排序等字段查询预警历史。
已处理
勾选预警历史,点击已处理按钮将预警历史标记为已处理。
全部已处理
点击全部已处理按钮,将所有预警历史标记为已处理。
未处理
勾选预警历史,点击未处理按钮将预警历史标记为未处理。
全部未处理
点击全部未处理按钮,将所有预警历史标记为未处理。
删除
勾选预警历史,点击删除按钮批量删除预警历史。
全部删除
点击全部删除按钮,将所有预警历史删除。