Parcourir la source

调度中心提供API服务,支持通过API服务对任务进行查询、新增、更新、启停等操作;

xuxueli il y a 6 ans
Parent
révision
88b0812b61

+ 32 - 23
doc/XXL-JOB官方文档.md Voir le fichier

@@ -920,16 +920,28 @@ echo "分片总数 total = $3"
920 920
 - 设置二:调度中心和执行器,设置了相同的AccessToken;
921 921
 
922 922
 ### 5.11 调度中心API服务
923
-调度中心提供了API服务,供执行器和业务方选择使用,目前提供的API服务有:
924 923
 
924
+调度中心提供了API服务,主要分为两种类型:
925
+#### 5.11.1 提供给执行器的API服务:
925 926
     1、任务结果回调服务;
926 927
     2、执行器注册服务;
927 928
     3、执行器注册摘除服务;
928 929
     4、触发任务单次执行服务,支持任务根据业务事件触发;
929 930
     
930
-调度中心API服务位置:com.xxl.job.core.biz.AdminBiz.java
931
-
932
-调度中心API服务请求参考代码:com.xxl.job.adminbiz.AdminBizTest.java
931
+API服务位置:com.xxl.job.core.biz.AdminBiz.java  
932
+API服务请求参考代码:com.xxl.job.adminbiz.AdminBizTest.java
933
+
934
+#### 5.11.2 提供给业务的API服务:
935
+    1、任务列表查询;
936
+    2、任务新增;
937
+    3、任务更新;
938
+    4、任务删除;
939
+    5、任务暂停;
940
+    6、任务恢复;
941
+    7、任务触发;
942
+    
943
+API服务位置:com.xxl.job.admin.controller.JobInfoController.java     
944
+API服务请求参考代码:可参考任务界面操作的ajax请求。任何ajax接口均可配置成为API服务,只需在待启用的API服务上添加 “@PermessionLimit(limit = false)” 注解取消登陆态拦截即可;
933 945
 
934 946
 ### 5.12 执行器API服务
935 947
 执行器提供了API服务,供调度中心选择使用,目前提供的API服务有:
@@ -940,9 +952,8 @@ echo "分片总数 total = $3"
940 952
     4、获取Rolling Log
941 953
     5、终止任务
942 954
     
943
-执行器API服务位置:com.xxl.job.core.biz.ExecutorBiz
944
-
945
-执行器API服务请求参考代码:com.xxl.executor.test.DemoJobHandlerTest
955
+API服务位置:com.xxl.job.core.biz.ExecutorBiz     
956
+API服务请求参考代码:com.xxl.executor.test.DemoJobHandlerTest
946 957
 
947 958
 ### 5.13 故障转移 & 失败重试
948 959
 一次完整任务流程包括"调度(调度中心) + 执行(执行器)"两个阶段。
@@ -1240,14 +1251,14 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
1240 1251
 - 1、任务超时控制:新增任务属性 "任务超时时间",并支持自定义,任务运行超时将会主动中断任务;
1241 1252
 - 2、任务失败重试次数:新增任务属性 "失败重试次数",并支持自定义,当任务失败时将会按照预设的失败重试次数主动进行重试;同时收敛废弃其他失败重试策略,如调度失败、执行失败、状态码失败等;
1242 1253
 - 3、新增任务运行模式 "GLUE模式(PHP) ",支持php脚本任务;
1243
-- 4、调度全异步处理:任务触发之后,推送到调度队列,多线程并发处理调度请求,提高任务调度速率的同时,避免因网络问题导致quartz调度线程阻塞的问题
1244
-- 5、执行器任务结果落盘优化:执行器回调失败时将任务结果写磁盘,待重启或网络恢复时重试回调任务结果,防止任务执行结果丢失
1245
-- 6、任务日志查询速度大幅提升:百万级别数据量搜索速度提升1000倍
1246
-- 7、底层自研Log组件参数占位符改为"{}",并修复打印有参日志时参数不匹配导致报错的问题
1247
-- 8、任务回调结果优化,支持展示在Rolling log中,方便问题排查
1248
-- 9、底层LocalCache组件兼容性优化,支持jdk9、jdk10及以上版本编译部署
1249
-- 10、任务属性枚举 "任务模式、阻塞策略" 国际化优化
1250
-- 11、任务日志表状态字段类型优化;
1254
+- 4、新增任务运行模式 "GLUE模式(PowerShell) ",支持PowerShell脚本任务
1255
+- 5、调度全异步处理:任务触发之后,推送到调度队列,多线程并发处理调度请求,提高任务调度速率的同时,避免因网络问题导致quartz调度线程阻塞的问题
1256
+- 6、执行器任务结果落盘优化:执行器回调失败时将任务结果写磁盘,待重启或网络恢复时重试回调任务结果,防止任务执行结果丢失
1257
+- 7、任务日志查询速度大幅提升:百万级别数据量搜索速度提升1000倍
1258
+- 8、底层自研Log组件参数占位符改为"{}",并修复打印有参日志时参数不匹配导致报错的问题
1259
+- 9、任务回调结果优化,支持展示在Rolling log中,方便问题排查
1260
+- 10、底层LocalCache组件兼容性优化,支持jdk9、jdk10及以上版本编译部署
1261
+- 11、任务属性枚举 "任务模式、阻塞策略" 国际化优化;
1251 1262
 - 12、告警邮件固定使用 UTF-8 编码格式,修复由机器编码导致的邮件乱码问题;
1252 1263
 - 13、告警邮件中展示失败告警信息;
1253 1264
 - 14、告警邮箱支持SSL配置;
@@ -1264,15 +1275,14 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
1264 1275
 - 25、任务调度备注中标注任务触发类型,如Cron触发、父任务触发、API触发等等,方便排查调度日志;
1265 1276
 - 26、底层日志组件SimpleDateFormat线程安全问题修复;
1266 1277
 - 27、执行器通讯线程优化,corePoolSize从256降低至32;
1267
-- 28、新增任务运行模式 "GLUE模式(PowerShell) ",支持PowerShell脚本任务
1278
+- 28、任务日志表状态字段类型优化
1268 1279
 - 29、GLUE脚本文件自动清理功能,及时清理过期脚本文件;
1269 1280
 - 30、执行器注册方式切换优化,切换自动注册时主动同步在线机器,避免执行器为空的问题;
1270 1281
 - 31、跨平台:除了提供Java、Python、PHP等十来种任务模式之外,新增提供基于HTTP的任务模式;
1271 1282
 - 32、底层RPC序列化协议调整为hessian2;
1272 1283
 - 33、修复表字段 “t.order”与数据库关键字冲突查询失败的问题,
1273
-- 34、【迭代中】分片任务失败重试优化,仅重试当前失败的分片;
1274
-- 35、【迭代中】支持通过API服务操作任务信息;
1275
-
1284
+- 34、调度中心提供API服务,支持通过API服务对任务进行查询、新增、更新、启停等操作;
1285
+- 35、【迭代中】分片任务失败重试优化,仅重试当前失败的分片;
1276 1286
 
1277 1287
 
1278 1288
 ### TODO LIST
@@ -1287,8 +1297,8 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
1287 1297
 - 9、执行器Log清理功能:调度中心Log删除时同步删除执行器中的Log文件;
1288 1298
 - 10、Bean模式任务,JobHandler自动从执行器中查询展示为下拉框,选择后自动填充任务名称等属性;
1289 1299
 - 11、API事件触发类型任务(更类似MQ消息)支持"动态传参、延时消费";该类型任务不走Quartz,单独建立MQ消息表,调度中心竞争触发;待定,该功能与 XXL-MQ 冲突,该场景建议用后者;
1290
-- 12、任务依赖增强,新增任务类型 "流程任务",流程节点可挂载普通类型任务,承担任务依赖功能。现有子任务模型取消;需要考虑任务依赖死循环问题
1291
-- 13、调度中心触发任务后,先推送触发队列,异步触发,然后立即返回。降低quartz线程占用时长。
1300
+- 12、API任务触发时支持动态传参
1301
+- 13、任务依赖增强,新增任务类型 "流程任务",流程节点可挂载普通类型任务,承担任务依赖功能。现有子任务模型取消;需要考虑任务依赖死循环问题;
1292 1302
 - 14、任务告警逻辑调整:任务调度,以及任务回调失败时,均推送监控队列。后期考虑通过任务Log字段控制告警状态;
1293 1303
 - 15、新增任务默认运行状态,任务更新时运行状态保持不变;
1294 1304
 - 16、提供多版本执行器:不依赖容器版本、不内嵌Jetty版本(通过配置executoraddress替换jetty通讯)等;
@@ -1296,8 +1306,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
1296 1306
 - 18、流程任务,支持参数传递;
1297 1307
 - 19、SimpleTrigger 支持;
1298 1308
 - 20、调度线程池改为协程方式实现,大幅降低系统内存消耗;
1299
-- 21、API任务触发时支持动态传参;
1300
-- 22、Release发布时,一同发布调度中心安装包,真正实现开箱即用;
1309
+- 21、Release发布时,一同发布调度中心安装包,真正实现开箱即用;
1301 1310
 
1302 1311
 ## 七、其他
1303 1312
 

+ 1 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java Voir le fichier

@@ -5,7 +5,6 @@ import com.xxl.job.admin.core.model.XxlJobInfo;
5 5
 import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum;
6 6
 import com.xxl.job.admin.core.thread.JobTriggerPoolHelper;
7 7
 import com.xxl.job.admin.core.trigger.TriggerTypeEnum;
8
-import com.xxl.job.admin.core.util.I18nUtil;
9 8
 import com.xxl.job.admin.dao.XxlJobGroupDao;
10 9
 import com.xxl.job.admin.service.XxlJobService;
11 10
 import com.xxl.job.core.biz.model.ReturnT;
@@ -91,6 +90,7 @@ public class JobInfoController {
91 90
 	
92 91
 	@RequestMapping("/trigger")
93 92
 	@ResponseBody
93
+	//@PermessionLimit(limit = false)
94 94
 	public ReturnT<String> triggerJob(int id) {
95 95
 		JobTriggerPoolHelper.trigger(id, -1, TriggerTypeEnum.MANUAL);
96 96
 		return ReturnT.SUCCESS;

+ 0 - 6
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java Voir le fichier

@@ -128,10 +128,4 @@ public class AdminBizImpl implements AdminBiz {
128 128
         return ReturnT.SUCCESS;
129 129
     }
130 130
 
131
-    @Override
132
-    public ReturnT<String> triggerJob(int jobId) {
133
-        JobTriggerPoolHelper.trigger(jobId, -1, TriggerTypeEnum.API);
134
-        return ReturnT.SUCCESS;
135
-    }
136
-
137 131
 }

+ 0 - 14
xxl-job-admin/src/test/java/com/xxl/job/adminbiz/AdminBizTest.java Voir le fichier

@@ -49,18 +49,4 @@ public class AdminBizTest {
49 49
         Assert.assertTrue(returnT.getCode() == ReturnT.SUCCESS_CODE);
50 50
     }
51 51
 
52
-    /**
53
-     * trigger job for once
54
-     *
55
-     * @throws Exception
56
-     */
57
-    @Test
58
-    public void triggerJob() throws Exception {
59
-        AdminBiz adminBiz = (AdminBiz) new NetComClientProxy(AdminBiz.class, addressUrl, accessToken).getObject();
60
-
61
-        int jobId = 1;
62
-        ReturnT<String> returnT = adminBiz.triggerJob(jobId);
63
-        Assert.assertTrue(returnT.getCode() == ReturnT.SUCCESS_CODE);
64
-    }
65
-
66 52
 }

+ 0 - 11
xxl-job-core/src/main/java/com/xxl/job/core/biz/AdminBiz.java Voir le fichier

@@ -43,15 +43,4 @@ public interface AdminBiz {
43 43
      */
44 44
     public ReturnT<String> registryRemove(RegistryParam registryParam);
45 45
 
46
-
47
-    // ---------------------- job opt ----------------------
48
-
49
-    /**
50
-     * trigger job for once
51
-     *
52
-     * @param jobId
53
-     * @return
54
-     */
55
-    public ReturnT<String> triggerJob(int jobId);
56
-
57 46
 }