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
df6ddbfe
Commit
df6ddbfe
authored
Sep 03, 2020
by
huangfusuper
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
执行节点执行出现异常的处理
parent
e42166f2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
32 additions
and
2 deletions
+32
-2
RunScriptProcessingMachine.java
...n/java/com/byit/node/impl/RunScriptProcessingMachine.java
+11
-1
MythJobProcess.java
...server/src/main/java/com/byit/process/MythJobProcess.java
+2
-1
KeyUtil.java
...executor-server/src/main/java/com/byit/utils/KeyUtil.java
+19
-0
No files found.
byit-myth-executor/myth-executor-server/src/main/java/com/byit/node/impl/RunScriptProcessingMachine.java
View file @
df6ddbfe
package
com
.
byit
.
node
.
impl
;
package
com
.
byit
.
node
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.byit.dto.executor.ScriptDto
;
import
com.byit.dto.executor.ScriptDto
;
import
com.byit.dto.plugin.RunLog
;
import
com.byit.exceptions.ExecutorException
;
import
com.byit.exceptions.ExecutorException
;
import
com.byit.node.ProcessingNodeChain
;
import
com.byit.node.ProcessingNodeChain
;
import
com.byit.node.machine.ProcessingMachine
;
import
com.byit.node.machine.ProcessingMachine
;
import
com.byit.process.MythJobProcess
;
import
com.byit.process.MythJobProcess
;
import
com.byit.utils.KeyUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
...
@@ -14,6 +17,8 @@ import java.util.ArrayList;
...
@@ -14,6 +17,8 @@ import java.util.ArrayList;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
import
static
com
.
alibaba
.
fastjson
.
serializer
.
SerializerFeature
.
WriteClassName
;
/**
/**
* 执行脚本的处理节点
* 执行脚本的处理节点
* @author huangfu
* @author huangfu
...
@@ -35,8 +40,9 @@ public class RunScriptProcessingMachine implements ProcessingMachine {
...
@@ -35,8 +40,9 @@ public class RunScriptProcessingMachine implements ProcessingMachine {
@Override
@Override
public
void
executor
(
ScriptDto
scriptDto
,
ProcessingNodeChain
processingNodeChain
)
{
public
void
executor
(
ScriptDto
scriptDto
,
ProcessingNodeChain
processingNodeChain
)
{
boolean
isRunNode
=
scriptDto
.
getRunId
().
contains
(
"REAL:EXEC:"
);
String
runKey
=
KeyUtil
.
generateRunKey
(
scriptDto
.
getLogId
());
try
{
try
{
boolean
isRunNode
=
scriptDto
.
getRunId
().
contains
(
"REAL:EXEC:"
);
List
<
String
>
cmdList
=
Arrays
.
asList
(
scriptDto
.
getCommand
().
split
(
" "
));
List
<
String
>
cmdList
=
Arrays
.
asList
(
scriptDto
.
getCommand
().
split
(
" "
));
List
<
String
>
newCmdList
=
new
ArrayList
<>();
List
<
String
>
newCmdList
=
new
ArrayList
<>();
cmdList
.
forEach
(
cmd
->{
cmdList
.
forEach
(
cmd
->{
...
@@ -63,6 +69,10 @@ public class RunScriptProcessingMachine implements ProcessingMachine {
...
@@ -63,6 +69,10 @@ public class RunScriptProcessingMachine implements ProcessingMachine {
scriptDto
.
setExitCode
(
exitCode
);
scriptDto
.
setExitCode
(
exitCode
);
processingNodeChain
.
doProcessing
(
scriptDto
,
processingNodeChain
);
processingNodeChain
.
doProcessing
(
scriptDto
,
processingNodeChain
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
if
(
isRunNode
)
{
RunLog
runLog
=
RunLog
.
builder
().
isEnd
(
true
).
runLog
(
"节点执行异常!"
).
isSuccess
(
false
).
build
();
stringRedisTemplate
.
opsForList
().
rightPush
(
runKey
,
JSON
.
toJSONString
(
runLog
,
WriteClassName
));
}
throw
new
ExecutorException
(
e
);
throw
new
ExecutorException
(
e
);
}
}
}
}
...
...
byit-myth-executor/myth-executor-server/src/main/java/com/byit/process/MythJobProcess.java
View file @
df6ddbfe
...
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
...
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import
com.byit.dto.plugin.RunLog
;
import
com.byit.dto.plugin.RunLog
;
import
com.byit.utils.ExecutorLogUtil
;
import
com.byit.utils.ExecutorLogUtil
;
import
com.byit.utils.JobContentUtil
;
import
com.byit.utils.JobContentUtil
;
import
com.byit.utils.KeyUtil
;
import
com.byit.utils.LogGobbler
;
import
com.byit.utils.LogGobbler
;
import
com.google.common.base.Joiner
;
import
com.google.common.base.Joiner
;
import
lombok.SneakyThrows
;
import
lombok.SneakyThrows
;
...
@@ -70,7 +71,7 @@ public class MythJobProcess implements Callable<String>{
...
@@ -70,7 +71,7 @@ public class MythJobProcess implements Callable<String>{
this
.
completeLatch
=
new
CountDownLatch
(
1
);
this
.
completeLatch
=
new
CountDownLatch
(
1
);
this
.
logId
=
logId
;
this
.
logId
=
logId
;
this
.
stringRedisTemplate
=
stringRedisTemplate
;
this
.
stringRedisTemplate
=
stringRedisTemplate
;
this
.
runKey
=
"REAL:EXEC:"
+
logId
;
this
.
runKey
=
KeyUtil
.
generateRunKey
(
logId
)
;
}
}
public
MythJobProcess
(
final
List
<
String
>
cmd
,
final
Map
<
String
,
String
>
env
,
public
MythJobProcess
(
final
List
<
String
>
cmd
,
final
Map
<
String
,
String
>
env
,
...
...
byit-myth-executor/myth-executor-server/src/main/java/com/byit/utils/KeyUtil.java
0 → 100644
View file @
df6ddbfe
package
com
.
byit
.
utils
;
/**
* 生成key的工具类
* @author huangfu
*/
public
class
KeyUtil
{
public
static
final
String
REAL_EXEC_PRE
=
"REAL:EXEC:%s"
;
/**
* 生成运行主键
* @param logId 日志id
* @return 对应的主键
*/
public
static
String
generateRunKey
(
Integer
logId
)
{
return
String
.
format
(
REAL_EXEC_PRE
,
logId
);
}
}
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