产品功能
通过任务调度XXLJOB版可以管理定时调度任务、查询任务执行记录和运行日志等。本文介绍XXLJOB操作管理、调度、可观测及安全上云等功能。
实例管理
实例生命周期管理
XXLJOB集群的创建、查询、删除、规格变配等。
版本升级
对阿里云XXLJOB版引擎进行升级。
应用管理
应用生命周期管理
XXLJOB业务应用的创建、修改、查询、删除等。
应用接入
提供无侵入的接入配置,只需要通过-D参数修改endpoint等信息,即可接入某个应用,并可在线看到执行器信息。
拉取日志
开启拉取日志功能,每次任务执行完成,会去客户端拉取日志,存储在日志服务SLS中。
任务类型
BEAN:需要XXLJOB执行器接入,支持Java、Go、Python语言。
GLUE脚本任务:需XXLJOB执行器接入,支持Java_Groovy、Shell、Python、PHP、NodeJs。
HTTP任务:无需接入执行器,通过配置域名或K8s服务自动发现后端节点,使用HTTP协议调度。
AI任务:Dify工作流调度。
定时调度
Cron
Quartz Cron表达式,可以精确到秒。
Fixed rate
固定执行频率,单位秒,即每隔N秒调度一次。
Fixed delay
固定延时,单位秒,即上次执行完成后隔N秒再调度下一次。
One time
一次性任务,跑完任务自动销毁,格式
yyyy-MM-dd HH:mm:ss
,比如2024-10-10 12:12:20
。API调度
通过openapi调度。
日历
可以导入自定义日历,按照日历调度,比如只想在工作日执行。
时区
可以按照固定时区调度,主要适用于cron表达式。
路由策略
提供多种不同的路由策略:
轮询:任务级别轮询,将任务按照执行器列表轮询调度。
一致性哈希:每个任务按照Hash算法固定选择某一台机器,且所有任务均匀散列在不同机器上。
权重最小:任务配置权重,将任务调度到权重最小的执行器,在同时存在大任务和小任务场景下保证负载均衡。
分片广播:将任务广播调度到所有机器上,每个执行器可以拿到分片总数和分片序号,用来做分布式跑批。
随机:将任务随机分配给某个执行器执行。
第一个:将任务固定调度到第一个执行器。
最后一个:将任务固定调度到最后一个执行器。
最不经常使用(LFU):将任务调度给使用频率最低的机器。
最近最久未使用(LRU):将任务调度给最久未使用的机器。
路由策略详细说明与选择建议请参见如何通过任务调度路由策略实现降低成本。
堵塞处理策略
提供客户端级别的堵塞处理策略:
单机串行:调度请求进入单机执行器后,调度请求进入FIFO队列并以串行方式运行。
丢弃后续调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,本次请求将会被丢弃并标记为失败。
覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本地调度任务。
限流控制
任务并发控制
任务级别流控,一个任务同一时间最多运行多少个任务实例,默认是1,表示上一次跑完才能跑下一次。
应用限流
应用级别限流,控制一个应用下同时跑的任务数。
运维操作
提供了多种运维操作,对任务进行运维:
任务级别:启用任务,禁用任务,运行一次任务,重刷任务。
任务执行级别:停止正在运行的任务,手动重跑失败的任务,查看运行任务的堆栈信息等。
故障转移&失败自动重试
产品使用高可用架构,任意一个节点挂掉,都有故障转移机制保障业务稳定运行。
同时也提供了业务失败自动重试的能力,用户对任务自定义配置:
任务失败重试次数:任务失败最大重试次数,达到次数还是失败不再重试。
任务失败重试间隔:每次失败后,间隔多少时间再重试。
执行器优雅下线
业务应用发布的时候,如果某个执行器正在执行任务,强制终止可能会导致业务有损。MSE-XXLJOB提供了优雅下线的能力,可以保障业务无损发布,详情请参见基于MSE XXL-JOB实现优雅下线。
标签路由&任务灰度
在企业业务迭代过程中,通常需要使用灰度发布的功能,来验证新的代码。MSE-XXLJOB提供了标签路由方案,可以作为任务灰度的解决方案,同时可以和服务治理结合做全链路灰度,详情请参见如何通过标签路由做任务灰度。
可观测
调度大盘
提供调度总数、成功次数、失败次数的历史调度曲线,支持按照应用过滤。
执行列表
保留每个任务最近的执行列表,并提供停止、重跑等操作。
调度事件
保留所有任务最近2个月的调度历史,包括开始调度、开始运行、执行成功、执行失败、失败自动重试等事件。
日志服务
集成阿里云日志服务SLS,保留所有任务最近2个月的执行日志。
操作记录
集成阿里云操作审计服务,可以看到所有控制台和OpenApi的操作历史记录。
监控报警
报警类型:失败报警、超时报警、无可用机器报警、成功通知。
报警方式:短信、电话、邮件、webhook。
报警联系人:集成云监控报警联系人。
安全管理
控制台权限管理
控制台操作使用RAM权限体系,能支持不同资源不同操作级别的鉴权。
客户端接入鉴权
每个应用分配一个appName和appToken进行接入鉴权。
迁移上云
平滑迁移:提供迁移工具将自建XXLJOB所有任务迁移到云上版本。