调度中心OpenAPI增强:提供任务管理能力,包括任务新建/更新/删除、启动/停止、任务触发等;

(注意:任务管理OpenAPI及操作代码示例,详见官方文档)
master
xuxueli 1 month ago
parent 33647f20c2
commit 4f484eb9dc

@ -1914,19 +1914,22 @@ XXL-JOB 目标是一种跨平台、跨语言的任务调度规范和协议。
针对非Java应用可借助 XXL-JOB 的标准 OpenApiRESTful API 方便的实现多语言支持。
- 调度中心 RESTful API
- 说明调度中心提供给执行器使用的API不局限于官方执行器使用第三方可使用该API来实现执行器
- API列表执行器注册、任务结果回调等
- 执行器 RESTful API
- 说明执行器提供给调度中心使用的API官方执行器默认已实现第三方执行器需要实现并对接提供给调度中心
- API列表任务触发、任务终止、任务日志查询……等
- **调度中心 RESTful API**
- 说明调度中心提供给执行器使用的API不局限于官方执行器使用第三方可使用该API来实现执行器
- API列表执行器注册、任务结果回调等
- **执行器 RESTful API**
- 说明执行器提供给调度中心使用的API官方执行器默认已实现第三方执行器需要实现并对接提供给调度中心
- API列表任务触发、任务终止、任务日志查询……等
- **任务管理(调度中心) RESTful API**
- 说明调度中心提供给三方集成系统的API用于任务管理第三方可通过该API实现任务生命周期管理
- API列表任务新增、任务更新、任务删除、任务启动、任务停止、任务触发执行...等;
此处 RESTful API 主要用于非Java语言定制个性化执行器使用实现跨语言。除此之外如果有需要通过API操作调度中心可以个性化扩展 “调度中心 RESTful API” 并使用。
### 6.1 调度中心 RESTful API
API服务位置com.xxl.job.core.openapi.AdminBiz com.xxl.job.admin.controller.JobApiController
API服务请求参考代码com.xxl.job.adminbiz.AdminBizTest
API服务位置com.xxl.job.core.openapi.admin.AdminBiz
API服务请求参考代码com.xxl.job.openapi.AdminBizTest
#### a、任务回调
```
@ -2011,8 +2014,8 @@ Header
### 6.2 执行器 RESTful API
API服务位置com.xxl.job.core.openapi.ExecutorBiz
API服务请求参考代码com.xxl.job.executorbiz.ExecutorBizTest
API服务位置com.xxl.job.core.openapi.executor.ExecutorBiz
API服务请求参考代码com.xxl.job.openapi.ExecutorBizTest
#### a、心跳检测
```
@ -2150,6 +2153,187 @@ Header
}
```
### 6.3 任务管理(调度中心) RESTful API
API服务位置com.xxl.job.core.openapi.admin.AdminJobBiz
API服务请求参考代码com.xxl.job.openapi.AdminJobBizTest
#### a、新增任务
```
说明:新增一个任务
------
地址格式:{调度中心根地址}/api/addJob
Header
XXL-JOB-ACCESS-TOKEN : {请求令牌}
XXL-JOB-APPNAME : {执行器AppName}
请求数据格式如下,放置在 RequestBody 中JSON格式
{
"jobGroup":1, // 执行器主键ID必填
"jobDesc":"测试任务", // 任务描述(必填)
"author":"admin", // 负责人(必填)
"alarmEmail":"", // 报警邮件(选填)
"scheduleType":"CRON", // 调度类型NONE、CRON、FIX_RATE必填
"scheduleConf":"0 0/1 * * * ?", // 调度配置CRON时填cron表达式FIX_RATE时填秒数必填
"misfireStrategy":"DO_NOTHING", // 调度过期策略DO_NOTHING、FIRE_ONCE_NOW选填
"executorRouteStrategy":"FIRST", // 路由策略FIRST、LAST、ROUND、RANDOM、CONSISTENT_HASH、LEAST_FREQUENTLY_USED、LEAST_RECENTLY_USED、FAILOVER、BUSYOVER、SHARDING_BROADCAST必填
"executorHandler":"demoJobHandler", // 执行器任务HandlerBEAN模式必填
"executorParam":"", // 任务参数(选填)
"executorBlockStrategy":"SERIAL_EXECUTION", // 阻塞处理策略SERIAL_EXECUTION、DISCARD_LATER、COVER_EARLY必填
"executorTimeout":0, // 任务超时时间,单位秒,大于零时生效(选填)
"executorFailRetryCount":0, // 失败重试次数(选填)
"glueType":"BEAN", // 任务模式BEAN、GLUE_GROOVY、GLUE_SHELL、GLUE_PYTHON、GLUE_NODEJS、GLUE_POWERSHELL、GLUE_PHP必填
"glueSource":"", // GLUE脚本代码GLUE模式必填
"glueRemark":"" // GLUE脚本备注GLUE模式选填
}
响应数据格式:
{
"code": 200, // 200 表示正常、其他失败
"msg": null, // 错误提示消息
"content": "123" // 新增的任务ID
}
```
#### b、更新任务
```
说明更新任务配置需要传入任务ID
------
地址格式:{调度中心根地址}/api/updateJob
Header
XXL-JOB-ACCESS-TOKEN : {请求令牌}
XXL-JOB-APPNAME : {执行器AppName}
请求数据格式如下,放置在 RequestBody 中JSON格式
{
"id":1, // 任务ID必填
"jobDesc":"测试任务", // 任务描述(必填)
"author":"admin", // 负责人(必填)
"alarmEmail":"", // 报警邮件(选填)
"scheduleType":"CRON", // 调度类型NONE、CRON、FIX_RATE必填
"scheduleConf":"0 0/1 * * * ?", // 调度配置(必填)
"misfireStrategy":"DO_NOTHING", // 调度过期策略(选填)
"executorRouteStrategy":"FIRST", // 路由策略(必填)
"executorHandler":"demoJobHandler", // 执行器任务HandlerBEAN模式必填
"executorParam":"", // 任务参数(选填)
"executorBlockStrategy":"SERIAL_EXECUTION", // 阻塞处理策略(必填)
"executorTimeout":0, // 任务超时时间(选填)
"executorFailRetryCount":0, // 失败重试次数(选填)
"glueType":"BEAN", // 任务模式(必填)
"glueSource":"", // GLUE脚本代码GLUE模式必填
"glueRemark":"" // GLUE脚本备注选填
}
响应数据格式:
{
"code": 200, // 200 表示正常、其他失败
"msg": null // 错误提示消息
}
```
#### c、删除任务
```
说明:删除指定任务
------
地址格式:{调度中心根地址}/api/removeJob
Header
XXL-JOB-ACCESS-TOKEN : {请求令牌}
XXL-JOB-APPNAME : {执行器AppName}
请求数据格式如下,放置在 RequestBody 中JSON格式
{
"id":1 // 任务ID必填
}
响应数据格式:
{
"code": 200, // 200 表示正常、其他失败
"msg": null // 错误提示消息
}
```
#### d、启动任务
```
说明:启动/启用一个任务,开始调度
------
地址格式:{调度中心根地址}/api/startJob
Header
XXL-JOB-ACCESS-TOKEN : {请求令牌}
XXL-JOB-APPNAME : {执行器AppName}
请求数据格式如下,放置在 RequestBody 中JSON格式
{
"id":1 // 任务ID必填
}
响应数据格式:
{
"code": 200, // 200 表示正常、其他失败
"msg": null // 错误提示消息
}
```
#### e、停止任务
```
说明:停止/禁用指定任务,暂停调度
------
地址格式:{调度中心根地址}/api/stopJob
Header
XXL-JOB-ACCESS-TOKEN : {请求令牌}
XXL-JOB-APPNAME : {执行器AppName}
请求数据格式如下,放置在 RequestBody 中JSON格式
{
"id":1 // 任务ID必填
}
响应数据格式:
{
"code": 200, // 200 表示正常、其他失败
"msg": null // 错误提示消息
}
```
#### f、触发任务执行
```
说明:手动触发一次任务执行
------
地址格式:{调度中心根地址}/api/triggerJob
Header
XXL-JOB-ACCESS-TOKEN : {请求令牌}
XXL-JOB-APPNAME : {执行器AppName}
请求数据格式如下,放置在 RequestBody 中JSON格式
{
"id":1, // 任务ID必填
"executorParam":"", // 任务参数(选填)
"addressList":"" // 执行器地址列表,多地址逗号分隔,为空则从注册中心获取(选填)
}
响应数据格式:
{
"code": 200, // 200 表示正常、其他失败
"msg": null // 错误提示消息
}
```
## 七、版本更新日志
### 7.1 版本 V1.1.x Release Notes[2015-12-05]

@ -1,4 +1,4 @@
package com.xxl.job.admin.business.service.impl;
package com.xxl.job.admin.business.scheduler.openapi.impl;
import com.xxl.job.admin.business.scheduler.config.XxlJobAdminBootstrap;
import com.xxl.job.core.openapi.admin.AdminBiz;

@ -1,4 +1,4 @@
package com.xxl.job.admin.business.service.impl;
package com.xxl.job.admin.business.scheduler.openapi.impl;
import com.xxl.job.admin.business.model.XxlJobInfo;
import com.xxl.job.admin.business.service.XxlJobService;
@ -10,7 +10,6 @@ import com.xxl.job.core.openapi.admin.dto.JobTriggerRequest;
import com.xxl.job.core.openapi.admin.dto.JobUpdateRequest;
import com.xxl.sso.core.model.LoginInfo;
import com.xxl.tool.concurrent.TokenBucket;
import com.xxl.tool.json.GsonTool;
import com.xxl.tool.response.Response;
import com.xxl.tool.response.ResponseCode;
import jakarta.annotation.Resource;
Loading…
Cancel
Save