diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index d3eaba0e..f5f60bfa 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -1914,19 +1914,22 @@ XXL-JOB 目标是一种跨平台、跨语言的任务调度规范和协议。 针对非Java应用,可借助 XXL-JOB 的标准 OpenApi(RESTful 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", // 执行器任务Handler(BEAN模式必填) + "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", // 执行器任务Handler(BEAN模式必填) + "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] diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/business/service/impl/AdminBizImpl.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/business/scheduler/openapi/impl/AdminBizImpl.java similarity index 94% rename from xxl-job-admin/src/main/java/com/xxl/job/admin/business/service/impl/AdminBizImpl.java rename to xxl-job-admin/src/main/java/com/xxl/job/admin/business/scheduler/openapi/impl/AdminBizImpl.java index 4642564c..2972921b 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/business/service/impl/AdminBizImpl.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/business/scheduler/openapi/impl/AdminBizImpl.java @@ -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; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/business/service/impl/AdminJobBizImpl.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/business/scheduler/openapi/impl/AdminJobBizImpl.java similarity index 98% rename from xxl-job-admin/src/main/java/com/xxl/job/admin/business/service/impl/AdminJobBizImpl.java rename to xxl-job-admin/src/main/java/com/xxl/job/admin/business/scheduler/openapi/impl/AdminJobBizImpl.java index 25e3a95c..a177a7d7 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/business/service/impl/AdminJobBizImpl.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/business/scheduler/openapi/impl/AdminJobBizImpl.java @@ -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;