Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
熊鹏飞
/
xxljob220
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
aef9ef6c
authored
Aug 30, 2017
by
xuxueli
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
事件调度:系统支持Cron、子任务触发、事件触发(API)三种方式触发任务调度;
parent
03979398
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
17 additions
and
19 deletions
doc/XXL-JOB官方文档.md
xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl
doc/XXL-JOB官方文档.md
View file @
aef9ef6c
## 《分
布式任务调度平台XXL-JOB》
## 《分
布式任务调度平台XXL-JOB》
...
...
@@ -992,6 +992,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
7、执行器注册线程销毁时, 主动摘除注册机器信息,提高执行器注册的实时性;
-
8、调度中心任务监控线程销毁时,批量对失败任务告警,防止告警信息丢失;
-
9、调度中心API服务:支持API方式触发任务执行;
-
10、事件调度:系统支持Cron、子任务触发、事件触发(API)三种方式触发任务调度;
### TODO LIST
-
1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java
View file @
aef9ef6c
...
...
@@ -34,6 +34,10 @@ public class XxlJobTrigger {
// load data
XxlJobInfo
jobInfo
=
XxlJobDynamicScheduler
.
xxlJobInfoDao
.
loadById
(
jobId
);
// job info
if
(
jobInfo
==
null
)
{
logger
.
warn
(
">>>>>>>>>>>> xxl-job trigger fail, jobId invalid,jobId={}"
,
jobId
);
return
;
}
XxlJobGroup
group
=
XxlJobDynamicScheduler
.
xxlJobGroupDao
.
load
(
jobInfo
.
getJobGroup
());
// group info
ExecutorBlockStrategyEnum
blockStrategy
=
ExecutorBlockStrategyEnum
.
match
(
jobInfo
.
getExecutorBlockStrategy
(),
ExecutorBlockStrategyEnum
.
SERIAL_EXECUTION
);
// block strategy
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java
View file @
aef9ef6c
...
...
@@ -69,21 +69,10 @@ public class AdminBizImpl implements AdminBiz {
for
(
int
i
=
0
;
i
<
childJobKeys
.
length
;
i
++)
{
String
[]
jobKeyArr
=
childJobKeys
[
i
].
split
(
"_"
);
if
(
jobKeyArr
!=
null
&&
jobKeyArr
.
length
==
2
)
{
XxlJobInfo
childJobInfo
=
xxlJobInfoDao
.
loadById
(
Integer
.
valueOf
(
jobKeyArr
[
1
]));
if
(
childJobInfo
!=
null
)
{
try
{
boolean
ret
=
XxlJobDynamicScheduler
.
triggerJob
(
String
.
valueOf
(
childJobInfo
.
getId
()),
String
.
valueOf
(
childJobInfo
.
getJobGroup
()));
// add msg
childTriggerMsg
+=
MessageFormat
.
format
(
"<br> {0}/{1} 触发子任务成功, 子任务Key: {2}, status: {3}, 子任务描述: {4}"
,
(
i
+
1
),
childJobKeys
.
length
,
childJobKeys
[
i
],
ret
,
childJobInfo
.
getJobDesc
());
}
catch
(
SchedulerException
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
}
}
else
{
childTriggerMsg
+=
MessageFormat
.
format
(
"<br> {0}/{1} 触发子任务失败, 子任务xxlJobInfo不存在, 子任务Key: {2}"
,
(
i
+
1
),
childJobKeys
.
length
,
childJobKeys
[
i
]);
}
ReturnT
<
String
>
triggerChildResult
=
xxlJobService
.
triggerJob
(
Integer
.
valueOf
(
jobKeyArr
[
1
]));
// add msg
childTriggerMsg
+=
MessageFormat
.
format
(
"<br> {0}/{1} 触发子任务{2}, 子任务Key: {3}, 子任务触发备注: {4}"
,
(
i
+
1
),
childJobKeys
.
length
,
(
triggerChildResult
.
getCode
()==
ReturnT
.
SUCCESS_CODE
?
"成功"
:
"失败"
),
childJobKeys
[
i
],
triggerChildResult
.
getMsg
());
}
else
{
childTriggerMsg
+=
MessageFormat
.
format
(
"<br> {0}/{1} 触发子任务失败, 子任务Key格式错误, 子任务Key: {2}"
,
(
i
+
1
),
childJobKeys
.
length
,
childJobKeys
[
i
]);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
View file @
aef9ef6c
...
...
@@ -264,6 +264,10 @@ public class XxlJobServiceImpl implements XxlJobService {
@Override
public
ReturnT
<
String
>
triggerJob
(
int
id
)
{
XxlJobInfo
xxlJobInfo
=
xxlJobInfoDao
.
loadById
(
id
);
if
(
xxlJobInfo
==
null
)
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"任务ID非法"
);
}
String
group
=
String
.
valueOf
(
xxlJobInfo
.
getJobGroup
());
String
name
=
String
.
valueOf
(
xxlJobInfo
.
getId
());
...
...
@@ -272,7 +276,7 @@ public class XxlJobServiceImpl implements XxlJobService {
return
ReturnT
.
SUCCESS
;
}
catch
(
SchedulerException
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
return
ReturnT
.
FAIL
;
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
e
.
getMessage
())
;
}
}
...
...
xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl
View file @
aef9ef6c
...
...
@@ -60,8 +60,8 @@
<#macro commonHeader>
<header class="main-header">
<a href="${request.contextPath}/" class="logo">
<span class="logo-mini"><b>X
</b>XL
</span>
<span class="logo-lg"><b>任务调度
</b>中心
</span>
<span class="logo-mini"><b>X
XL</b>
</span>
<span class="logo-lg"><b>任务调度
中心</b>
</span>
</a>
<nav class="navbar navbar-static-top" role="navigation">
<a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button"><span class="sr-only">切换导航</span></a>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment