Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
byit-myth-job
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liyuan
byit-myth-job
Commits
a396df40
Commit
a396df40
authored
Feb 10, 2020
by
guominglei
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/developer' into developer
parents
9f793105
9b0199d1
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
38 additions
and
26 deletions
+38
-26
JobTaskRunLog.java
...dmin-core/src/main/java/com/byit/model/JobTaskRunLog.java
+1
-1
TaskAndLogServerImpl.java
...om/byit/service/mapservice/impl/TaskAndLogServerImpl.java
+1
-1
JobScheduleHelper.java
...core/src/main/java/com/byit/thread/JobScheduleHelper.java
+33
-21
JobTaskMapper.xml
...th-admin-core/src/main/resources/mapper/JobTaskMapper.xml
+1
-1
JobTaskScheduleMapper.xml
...-core/src/main/resources/mapper/JobTaskScheduleMapper.xml
+1
-1
TestAddFlow.java
...t-demo-client/src/main/java/com/byit/job/TestAddFlow.java
+1
-1
No files found.
byit-myth-core/myth-admin-core/src/main/java/com/byit/model/JobTaskRunLog.java
View file @
a396df40
...
...
@@ -76,7 +76,7 @@ public class JobTaskRunLog implements Serializable {
/**
* 运行结果 1 成功 2 失败 3 补批成功 4 补批失败 5.kill
*/
@ApiModelProperty
(
"运行结果 1 成功 2 失败 3 补批成功 4 补批失败 5.kill"
)
@ApiModelProperty
(
"运行结果 1 成功 2 失败 3 补批成功 4 补批失败 5.kill
6.上级节点执行失败
"
)
private
String
runCode
;
/**
...
...
byit-myth-core/myth-admin-core/src/main/java/com/byit/service/mapservice/impl/TaskAndLogServerImpl.java
View file @
a396df40
...
...
@@ -44,7 +44,7 @@ public class TaskAndLogServerImpl implements TaskAndLogServer {
jobTaskRunLog
.
setHandlerName
(
jobTask
.
getHandlerName
());
jobTaskRunLog
.
setIsVirtual
(
jobTask
.
getIsVirtual
());
jobTaskRunLog
.
setMapFlowId
(
jobTask
.
getMapFlowId
());
jobTaskRunLog
.
setRunCode
(
"
2
"
);
jobTaskRunLog
.
setRunCode
(
"
6
"
);
jobTaskRunLog
.
setRunMsg
(
"上级节点执行失败"
);
jobTaskRunLog
.
setRunParams
(
jobTask
.
getRunParam
());
jobTaskRunLog
.
setRunCommand
(
jobTask
.
getRunCommand
());
...
...
byit-myth-core/myth-admin-core/src/main/java/com/byit/thread/JobScheduleHelper.java
View file @
a396df40
...
...
@@ -173,22 +173,26 @@ public class JobScheduleHelper{
if
(
CollectionUtil
.
isNotEmpty
(
jobTaskRunLogList
))
{
//判断父类节点是否已经全部完成,只需要判断依赖节点的数目和查询出来的日志数据是否相同
if
(
dependIdByNodeId
.
size
()
==
jobTaskRunLogList
.
size
()){
//该节点如果为弱引用
if
(
"1"
.
equals
(
jobTask
.
getSuperSuccessRun
()))
{
//执行代码
runJobTask
(
jobTask
,
jobTaskSchedules
);
}
else
{
//过滤失败的节点
List
<
JobTaskRunLog
>
errorJobLog
=
jobTaskRunLogList
.
stream
().
filter
(
jobTaskRunLog
->
(!(
"1"
.
equals
(
jobTaskRunLog
.
getRunCode
())
||
"3"
.
equals
(
jobTaskRunLog
.
getRunCode
()))))
.
collect
(
Collectors
.
toList
());
//如果有失败的节点 就把改节点置为失败
if
(
CollectionUtil
.
isNotEmpty
(
errorJobLog
)){
//删除这个数据 并且添加到日志
taskAndLogServer
.
addRunLogAndRemoveTask
(
jobTask
);
}
else
{
//过滤失败的节点
List
<
JobTaskRunLog
>
errorJobLog
=
jobTaskRunLogList
.
stream
().
filter
(
jobTaskRunLog
->
(
"2"
.
equals
(
jobTaskRunLog
.
getRunCode
())
||
"4"
.
equals
(
jobTaskRunLog
.
getRunCode
())))
.
collect
(
Collectors
.
toList
());
//判断剩余执行次数是否为0
if
(
parentNodeErrorCount
(
errorJobLog
))
{
log
.
debug
(
"--------------【{}的上级节点的失败节点已经全部重试完毕】------------------"
,
jobTask
);
//该节点如果为弱引用
if
(
"1"
.
equals
(
jobTask
.
getSuperSuccessRun
()))
{
//执行代码
runJobTask
(
jobTask
,
jobTaskSchedules
);
}
else
{
//如果有失败的节点 就把该节点置为失败
if
(
CollectionUtil
.
isNotEmpty
(
errorJobLog
)){
//删除这个数据 并且添加到日志
taskAndLogServer
.
addRunLogAndRemoveTask
(
jobTask
);
}
else
{
//执行代码
runJobTask
(
jobTask
,
jobTaskSchedules
);
}
}
}
}
...
...
@@ -455,15 +459,23 @@ public class JobScheduleHelper{
return
jobTaskRunLog
.
getLogId
();
}
private
boolean
parentIsEnd
(
List
<
JobTaskRunLog
>
jobTaskRunLogList
){
boolean
flag
=
true
;
for
(
JobTaskRunLog
jobTaskRunLog
:
jobTaskRunLogList
)
{
if
(
"0"
.
equals
(
jobTaskRunLog
.
getRunCode
()))
{
flag
=
false
;
break
;
/**
* 判断失败节点的重试次数是不是为0
* @param errorJobLog 上级节点的全部失败节点
* @return
*/
private
boolean
parentNodeErrorCount
(
List
<
JobTaskRunLog
>
errorJobLog
){
if
(
CollectionUtil
.
isEmpty
(
errorJobLog
)){
return
true
;
}
for
(
JobTaskRunLog
jobTaskRunLog
:
errorJobLog
)
{
//失败重试次数大于0 而且错误原因不是上级节点执行失败
if
(
jobTaskRunLog
.
getFailedRemainingCount
()>
0
&&
!(
"6"
.
equals
(
jobTaskRunLog
.
getRunCode
()))){
log
.
debug
(
"----------------【{}节点没有重试完毕】----------------"
,
jobTaskRunLog
);
return
false
;
}
}
return
flag
;
return
true
;
}
private
void
runJobTask
(
JobTask
jobTask
,
List
<
JobTaskSchedule
>
jobTaskSchedules
){
...
...
byit-myth-core/myth-admin-core/src/main/resources/mapper/JobTaskMapper.xml
View file @
a396df40
...
...
@@ -282,7 +282,7 @@
#{jobTask.runParam,jdbcType=VARCHAR},#{jobTask.runSourceDesc,jdbcType=VARCHAR},#{jobTask.scriptUrls,jdbcType=VARCHAR},
#{jobTask.sourcePrincipal,jdbcType=VARCHAR},#{jobTask.triggerTime,jdbcType=BIGINT},#{jobTask.triggerStatus,jdbcType=CHAR},
#{jobTask.versionName,jdbcType=VARCHAR},#{jobTask.runCommand,jdbcType=VARCHAR},#{jobTask.runSource,jdbcType=LONGVARCHAR},
#{jobTask.flowName,jdbcType=VARCHAR},#{jobTask.superSuccessRun,jdbcType=CHAR},
,
#{jobTask.reRunId,jdbcType=VARCHAR}
#{jobTask.flowName,jdbcType=VARCHAR},#{jobTask.superSuccessRun,jdbcType=CHAR},#{jobTask.reRunId,jdbcType=VARCHAR}
)
</foreach>
...
...
byit-myth-core/myth-admin-core/src/main/resources/mapper/JobTaskScheduleMapper.xml
View file @
a396df40
...
...
@@ -310,7 +310,7 @@
#{jobTaskSchedule.logId,jdbcType=INTEGER},
#{jobTaskSchedule.runCommand,jdbcType=VARCHAR}, #{jobTaskSchedule.runSource,jdbcType=LONGVARCHAR},
#{jobTaskSchedule.flowName,jdbcType=VARCHAR}, #{jobTaskSchedule.superSuccessRun,jdbcType=CHAR},
#{jobTaskSchedule.reRunId,jdbcType=VARCHAR}
,
#{jobTaskSchedule.reRunId,jdbcType=VARCHAR}
)
</foreach>
</insert>
...
...
demo-client/byit-demo-client/src/main/java/com/byit/job/TestAddFlow.java
View file @
a396df40
...
...
@@ -109,7 +109,7 @@ public class TestAddFlow {
pluginNode4
.
setName
(
"中间节点3"
);
pluginNode4
.
setDesc
(
"中间节点3"
);
//弱依赖
pluginNode4
.
setSuperSuccessRun
(
"
1
"
);
pluginNode4
.
setSuperSuccessRun
(
"
0
"
);
pluginNode4
.
setType
(
"node"
);
pluginNode4
.
setAuthor
(
"皇甫"
);
pluginNode4
.
setJobType
(
"JAVA"
);
...
...
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