Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
88b0812b
提交
88b0812b
authored
9月 22, 2018
作者:
xuxueli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
调度中心提供API服务,支持通过API服务对任务进行查询、新增、更新、启停等操作;
上级
7f50ed99
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
33 行增加
和
55 行删除
+33
-55
XXL-JOB官方文档.md
doc/XXL-JOB官方文档.md
+32
-23
JobInfoController.java
.../java/com/xxl/job/admin/controller/JobInfoController.java
+1
-1
AdminBizImpl.java
...ain/java/com/xxl/job/admin/service/impl/AdminBizImpl.java
+0
-6
AdminBizTest.java
...dmin/src/test/java/com/xxl/job/adminbiz/AdminBizTest.java
+0
-14
AdminBiz.java
...job-core/src/main/java/com/xxl/job/core/biz/AdminBiz.java
+0
-11
没有找到文件。
doc/XXL-JOB官方文档.md
浏览文件 @
88b0812b
...
...
@@ -920,16 +920,28 @@ echo "分片总数 total = $3"
-
设置二:调度中心和执行器,设置了相同的AccessToken;
### 5.11 调度中心API服务
调度中心提供了API服务,供执行器和业务方选择使用,目前提供的API服务有:
调度中心提供了API服务,主要分为两种类型:
#### 5.11.1 提供给执行器的API服务:
1、任务结果回调服务;
2、执行器注册服务;
3、执行器注册摘除服务;
4、触发任务单次执行服务,支持任务根据业务事件触发;
调度中心API服务位置:com.xxl.job.core.biz.AdminBiz.java
调度中心API服务请求参考代码:com.xxl.job.adminbiz.AdminBizTest.java
API服务位置:com.xxl.job.core.biz.AdminBiz.java
API服务请求参考代码:com.xxl.job.adminbiz.AdminBizTest.java
#### 5.11.2 提供给业务的API服务:
1、任务列表查询;
2、任务新增;
3、任务更新;
4、任务删除;
5、任务暂停;
6、任务恢复;
7、任务触发;
API服务位置:com.xxl.job.admin.controller.JobInfoController.java
API服务请求参考代码:可参考任务界面操作的ajax请求。任何ajax接口均可配置成为API服务,只需在待启用的API服务上添加 “@PermessionLimit(limit = false)” 注解取消登陆态拦截即可;
### 5.12 执行器API服务
执行器提供了API服务,供调度中心选择使用,目前提供的API服务有:
...
...
@@ -940,9 +952,8 @@ echo "分片总数 total = $3"
4、获取Rolling Log
5、终止任务
执行器API服务位置:com.xxl.job.core.biz.ExecutorBiz
执行器API服务请求参考代码:com.xxl.executor.test.DemoJobHandlerTest
API服务位置:com.xxl.job.core.biz.ExecutorBiz
API服务请求参考代码:com.xxl.executor.test.DemoJobHandlerTest
### 5.13 故障转移 & 失败重试
一次完整任务流程包括"调度(调度中心) + 执行(执行器)"两个阶段。
...
...
@@ -1240,14 +1251,14 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
1、任务超时控制:新增任务属性 "任务超时时间",并支持自定义,任务运行超时将会主动中断任务;
-
2、任务失败重试次数:新增任务属性 "失败重试次数",并支持自定义,当任务失败时将会按照预设的失败重试次数主动进行重试;同时收敛废弃其他失败重试策略,如调度失败、执行失败、状态码失败等;
-
3、新增任务运行模式 "GLUE模式(PHP) ",支持php脚本任务;
-
4、
调度全异步处理:任务触发之后,推送到调度队列,多线程并发处理调度请求,提高任务调度速率的同时,避免因网络问题导致quartz调度线程阻塞的问题
;
-
5、
执行器任务结果落盘优化:执行器回调失败时将任务结果写磁盘,待重启或网络恢复时重试回调任务结果,防止任务执行结果丢失
;
-
6、
任务日志查询速度大幅提升:百万级别数据量搜索速度提升1000倍
;
-
7、
底层自研Log组件参数占位符改为"{}",并修复打印有参日志时参数不匹配导致报错的问题
;
-
8、
任务回调结果优化,支持展示在Rolling log中,方便问题排查
;
-
9、
底层LocalCache组件兼容性优化,支持jdk9、jdk10及以上版本编译部署
;
-
10、
任务属性枚举 "任务模式、阻塞策略" 国际化优化
;
-
11、任务
日志表状态字段类型
优化;
-
4、
新增任务运行模式 "GLUE模式(PowerShell) ",支持PowerShell脚本任务
;
-
5、
调度全异步处理:任务触发之后,推送到调度队列,多线程并发处理调度请求,提高任务调度速率的同时,避免因网络问题导致quartz调度线程阻塞的问题
;
-
6、
执行器任务结果落盘优化:执行器回调失败时将任务结果写磁盘,待重启或网络恢复时重试回调任务结果,防止任务执行结果丢失
;
-
7、
任务日志查询速度大幅提升:百万级别数据量搜索速度提升1000倍
;
-
8、
底层自研Log组件参数占位符改为"{}",并修复打印有参日志时参数不匹配导致报错的问题
;
-
9、
任务回调结果优化,支持展示在Rolling log中,方便问题排查
;
-
10、
底层LocalCache组件兼容性优化,支持jdk9、jdk10及以上版本编译部署
;
-
11、任务
属性枚举 "任务模式、阻塞策略" 国际化
优化;
-
12、告警邮件固定使用 UTF-8 编码格式,修复由机器编码导致的邮件乱码问题;
-
13、告警邮件中展示失败告警信息;
-
14、告警邮箱支持SSL配置;
...
...
@@ -1264,15 +1275,14 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
25、任务调度备注中标注任务触发类型,如Cron触发、父任务触发、API触发等等,方便排查调度日志;
-
26、底层日志组件SimpleDateFormat线程安全问题修复;
-
27、执行器通讯线程优化,corePoolSize从256降低至32;
-
28、
新增任务运行模式 "GLUE模式(PowerShell) ",支持PowerShell脚本任务
;
-
28、
任务日志表状态字段类型优化
;
-
29、GLUE脚本文件自动清理功能,及时清理过期脚本文件;
-
30、执行器注册方式切换优化,切换自动注册时主动同步在线机器,避免执行器为空的问题;
-
31、跨平台:除了提供Java、Python、PHP等十来种任务模式之外,新增提供基于HTTP的任务模式;
-
32、底层RPC序列化协议调整为hessian2;
-
33、修复表字段 “t.order”与数据库关键字冲突查询失败的问题,
-
34、【迭代中】分片任务失败重试优化,仅重试当前失败的分片;
-
35、【迭代中】支持通过API服务操作任务信息;
-
34、调度中心提供API服务,支持通过API服务对任务进行查询、新增、更新、启停等操作;
-
35、【迭代中】分片任务失败重试优化,仅重试当前失败的分片;
### TODO LIST
...
...
@@ -1287,8 +1297,8 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
9、执行器Log清理功能:调度中心Log删除时同步删除执行器中的Log文件;
-
10、Bean模式任务,JobHandler自动从执行器中查询展示为下拉框,选择后自动填充任务名称等属性;
-
11、API事件触发类型任务(更类似MQ消息)支持"动态传参、延时消费";该类型任务不走Quartz,单独建立MQ消息表,调度中心竞争触发;待定,该功能与 XXL-MQ 冲突,该场景建议用后者;
-
12、
任务依赖增强,新增任务类型 "流程任务",流程节点可挂载普通类型任务,承担任务依赖功能。现有子任务模型取消;需要考虑任务依赖死循环问题
;
-
13、
调度中心触发任务后,先推送触发队列,异步触发,然后立即返回。降低quartz线程占用时长。
-
12、
API任务触发时支持动态传参
;
-
13、
任务依赖增强,新增任务类型 "流程任务",流程节点可挂载普通类型任务,承担任务依赖功能。现有子任务模型取消;需要考虑任务依赖死循环问题;
-
14、任务告警逻辑调整:任务调度,以及任务回调失败时,均推送监控队列。后期考虑通过任务Log字段控制告警状态;
-
15、新增任务默认运行状态,任务更新时运行状态保持不变;
-
16、提供多版本执行器:不依赖容器版本、不内嵌Jetty版本(通过配置executoraddress替换jetty通讯)等;
...
...
@@ -1296,8 +1306,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
18、流程任务,支持参数传递;
-
19、SimpleTrigger 支持;
-
20、调度线程池改为协程方式实现,大幅降低系统内存消耗;
-
21、API任务触发时支持动态传参;
-
22、Release发布时,一同发布调度中心安装包,真正实现开箱即用;
-
21、Release发布时,一同发布调度中心安装包,真正实现开箱即用;
## 七、其他
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java
浏览文件 @
88b0812b
...
...
@@ -5,7 +5,6 @@ import com.xxl.job.admin.core.model.XxlJobInfo;
import
com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum
;
import
com.xxl.job.admin.core.thread.JobTriggerPoolHelper
;
import
com.xxl.job.admin.core.trigger.TriggerTypeEnum
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.service.XxlJobService
;
import
com.xxl.job.core.biz.model.ReturnT
;
...
...
@@ -91,6 +90,7 @@ public class JobInfoController {
@RequestMapping
(
"/trigger"
)
@ResponseBody
//@PermessionLimit(limit = false)
public
ReturnT
<
String
>
triggerJob
(
int
id
)
{
JobTriggerPoolHelper
.
trigger
(
id
,
-
1
,
TriggerTypeEnum
.
MANUAL
);
return
ReturnT
.
SUCCESS
;
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java
浏览文件 @
88b0812b
...
...
@@ -128,10 +128,4 @@ public class AdminBizImpl implements AdminBiz {
return
ReturnT
.
SUCCESS
;
}
@Override
public
ReturnT
<
String
>
triggerJob
(
int
jobId
)
{
JobTriggerPoolHelper
.
trigger
(
jobId
,
-
1
,
TriggerTypeEnum
.
API
);
return
ReturnT
.
SUCCESS
;
}
}
xxl-job-admin/src/test/java/com/xxl/job/adminbiz/AdminBizTest.java
浏览文件 @
88b0812b
...
...
@@ -49,18 +49,4 @@ public class AdminBizTest {
Assert
.
assertTrue
(
returnT
.
getCode
()
==
ReturnT
.
SUCCESS_CODE
);
}
/**
* trigger job for once
*
* @throws Exception
*/
@Test
public
void
triggerJob
()
throws
Exception
{
AdminBiz
adminBiz
=
(
AdminBiz
)
new
NetComClientProxy
(
AdminBiz
.
class
,
addressUrl
,
accessToken
).
getObject
();
int
jobId
=
1
;
ReturnT
<
String
>
returnT
=
adminBiz
.
triggerJob
(
jobId
);
Assert
.
assertTrue
(
returnT
.
getCode
()
==
ReturnT
.
SUCCESS_CODE
);
}
}
xxl-job-core/src/main/java/com/xxl/job/core/biz/AdminBiz.java
浏览文件 @
88b0812b
...
...
@@ -43,15 +43,4 @@ public interface AdminBiz {
*/
public
ReturnT
<
String
>
registryRemove
(
RegistryParam
registryParam
);
// ---------------------- job opt ----------------------
/**
* trigger job for once
*
* @param jobId
* @return
*/
public
ReturnT
<
String
>
triggerJob
(
int
jobId
);
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论