1. 为什么需要手动触发XXL-JOB任务调试
在分布式任务调度系统XXL-JOB的实际开发过程中,我们经常会遇到需要快速验证任务逻辑是否正确执行的需求。虽然XXL-JOB提供了完善的管理界面,但通过curl命令直接调用任务执行接口,对于开发者来说有几个不可替代的优势:
- 快速验证:无需登录管理后台,一条命令即可触发任务执行,特别适合在开发调试阶段频繁调用
- 自动化集成:可以方便地集成到CI/CD流程中,实现自动化测试
- 精准控制:能够精确控制调用参数,方便排查特定场景下的问题
- 效率提升:省去了在Web界面点击操作的时间,对于需要反复调试的场景尤其高效
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 完整curl命令解析与参数说明
让我们先看一个完整的curl调用示例,然后逐步解析每个参数的含义和注意事项:
bash复制curl http://localhost:9999/run \
-H 'content-type:application/json' \
-d '{"executorHandler":"testJob", "glueType": "BEAN"}' \
-H 'XXL-JOB-ACCESS-TOKEN: yourToken'
2.1 基础请求结构
- 请求URL:
http://{host}:{port}/run是XXL-JOB执行器的统一触发接口 - 请求方法:POST(curl默认就是POST请求)
- Content-Type:必须设置为
application/json,因为我们要发送JSON格式的请求体
2.2 关键请求参数详解
2.2.1 executorHandler参数
json复制"executorHandler": "testJob"
这个参数对应Java代码中@XxlJob注解定义的任务名称。例如:
java复制@XxlJob("testJob")
public void testJob() throws Exception {
// 任务逻辑代码
}
常见问题:如果这里填写的名称与注解定义的不一致,会导致"job handler [xxx] not found"错误。建议直接从代码中复制任务名称,避免拼写错误。
2.2.2 glueType参数
json复制"glueType": "BEAN"
对于常规的Java任务,这个值固定为"BEAN"。XXL-JOB支持多种任务类型:
| 类型值 | 说明 | 适用场景 |
|---|---|---|
| BEAN | Spring Bean模式 | 常规Java任务 |
| GLUE_GROOVY | Groovy脚本 | 动态脚本任务 |
| GLUE_SHELL | Shell脚本 | Linux系统命令 |
| GLUE_PYTHON | Python脚本 | Python任务 |
注意事项:如果开发的是脚本任务,需要对应修改此参数。但大多数Java项目都使用BEAN模式。
2.3 安全认证配置
bash复制-H 'XXL-JOB-ACCESS-TOKEN
