Skip to content

任务管理

任务是调度的核心单元。进入「任务管理」可创建、启停、手动触发任务。

创建任务

字段说明
执行器分组任务归属的 app_name(job_group)
任务描述展示名
调度类型CRON / 固定频率 / 固定延时
调度配置见下表
Handler执行器注册的处理函数名
任务参数传给 handler 的字符串
路由策略多机时的选取规则
阻塞策略上次未完成时的处理
超时时间单次执行超时(秒,0=不限)
失败重试次数失败后重试次数

基础信息字段填写要点

执行器分组:从下拉选,选项来自「执行器管理」页的分组(显示 app_name (title))。任务只能调度到所选分组当前在线的执行器;分组无在线机器则触发失败。

任务描述:任意展示名,用于列表与日志识别,建议填有业务含义的名字(如「日报数据同步」)。

Handler 与参数:随「GLUE 类型」不同而填法不同:

GLUE 类型Handler参数
BEAN(已注册 handler)必填,填执行器注册的 handler 名(内置如 httpCall/shellExec/mysqlQuery/sendWebhook,或自定义 handler)传给 handler 的字符串;内置 handler 多为 JSON,格式见 内置 handler
GLUE Go / Shell / Python留空(代码写在 GLUE 代码框)作为脚本/函数输入,如 Shell 的 $XXL_JOB_PARAM 环境变量
HTTP 调用(URL)留空(URL 等配置在 HTTP 表单)作为 注入 URL / 请求头 / 请求体

即:只有 BEAN 任务需要填 Handler;HTTP 任务的「参数」是为占位符 提供值的。

调度类型与配置

类型配置格式示例
CRON(1)6/7 段 CRON(含秒)0 */5 * * * ?(每 5 分钟)
固定频率(2)秒数30(每 30 秒)
固定延时(3)秒数(上次结束后再延时)60(结束后等 60 秒)

路由策略

多台在线机器时,选取哪台执行:

策略说明
1第一个固定取列表首个
2最后一个固定取列表末个
3轮询依次轮流
4随机随机选取
5一致性 HASH同一任务 hash 到固定机器
6最不经常使用(LFU)选调用次数最少的
7最近最久未使用(LRU)选最久未用的
8故障转移顺序尝试,跳过失败
9忙碌转移跳过忙碌机器
10分片广播广播到所有机器

阻塞策略

上次调度未完成、本次触发又到达时:

策略说明
0单机串行排队等待(默认)
1丢弃后续丢弃本次触发
2覆盖之前取消正在执行的,改为本次

生命周期操作

操作说明
启动开始按调度配置触发(计算下次触发时间)
停止暂停调度
手动触发立即执行一次,不影响下次调度
编辑修改配置(运行中也可改,下次触发生效)
删除移除任务

GLUE 模式

GLUE 类型任务可直接在页面编辑代码,系统保留最近 30 个版本(「GLUE 版本」查看历史)。支持 Shell / Python / Go(yaegi 在线解释)三种类型。

WARNING

GLUE 默认关闭(执行器 enable_script=false)。在线代码有执行风险,仅在受控环境开启,详见根目录 SECURITY.md

HTTP 调用任务(glue_type=4)

GLUE 类型选「HTTP 调用(URL)」即可创建「定时调用一个 URL」的任务——典型用于触发 webhook、定时健康检查、回调第三方接口。配置以结构化表单编辑,序列化为 JSON 存入 glue_source,由执行器发起 HTTP 请求。

TIP

HTTP 任务需执行器显式开启:SDK 调 WithHTTPTask(true)xxljob/xxl-job-executor 镜像与 -executor 内嵌执行器已默认开启。

字段说明

字段说明
URL目标地址,必填;支持占位符
方法GET(默认) / POST / PUT / DELETE / PATCH / HEAD
请求头一行一个,格式 Key: Value
请求体原始字符串,仅 POST/PUT/PATCH 携带;支持占位符
超时(秒)0 = 回退「任务超时」→ 默认 30
期望状态码逗号分隔,如 200,201留空 = 任意 2xx 算成功

占位符

URL / 请求头值 / 请求体在请求前替换:

占位符含义
任务的「任务参数」
/ 分片广播时的分片号/总数
本次调度日志 ID

成败判定

命中「期望状态码」或(留空时)任意 2xx → 任务成功;否则失败(触发重试/告警)。注意 201/204 默认算成功(区别于直接返回原始码的做法)。

示例

GET 健康检查(每 1 分钟):

URL:   https://api.example.com/health
方法:  GET
期望:  200

POST webhook(带任务参数注入,每 5 分钟):

URL:   https://oapi.dingtalk.com/robot/send?access_token=xxx
方法:  POST
请求头: Content-Type: application/json
请求体: {"msgtype":"text","text":{"content":"定时通知 {{param}}"}}
期望:  200
任务参数: 日报

与 httpCall handler 的区别

两者都能「调 URL」,按需选择:

维度HTTP 任务(glue_type=4)BEAN + httpCall handler
配置位置任务定义(固定)任务参数(每次可变)
占位符
期望状态码✅ 可配❌(固定 2xx)
分片广播✅ 每个分片各发一次
适用固定的定时回调/检查参数频繁变化的一次性调用

httpCall 等内置 handler 的参数格式见 内置 handler

场景示例

场景推荐配置
每天凌晨清理CRON 0 0 3 * * ?(每天 3 点)
高频轮询固定频率 30(每 30 秒)+ 路由轮询(3)
慢任务限频固定延时 60 + 阻塞丢弃(1)
父子编排父任务 child_jobid 填子任务 ID,父成功后触发子
大数据分片路由分片广播(10),每台执行器处理一片
定时 webhookHTTP 任务,POST + 请求体 + 期望 200,如钉钉/企微/飞书机器人
健康检查HTTP 任务,GET URL + 期望 200,失败触发告警/重试

示例任务(CRON/固定频率/父子编排等)可通过 --demo 启动 admin 自动 seed,或参考 backend/examples/ 的 GLUE 脚本。

基于 MIT 协议发布