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
45ea0fbd
Commit
45ea0fbd
authored
Jan 07, 2020
by
huangfusuper
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【添加测试用例】添加添加工作流的测试用例
parent
a1541784
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
178 additions
and
8 deletions
+178
-8
ApiFlowDagCheck.java
...min-core/src/main/java/com/byit/util/ApiFlowDagCheck.java
+4
-2
PluginBaseNode.java
...src/main/java/com/byit/job/dto/plugin/PluginBaseNode.java
+2
-1
PluginFlow.java
...mon/src/main/java/com/byit/job/dto/plugin/PluginFlow.java
+4
-1
PluginFlowConfig.java
...c/main/java/com/byit/job/dto/plugin/PluginFlowConfig.java
+6
-0
DemoJob.java
.../byit-demo-client/src/main/java/com/byit/job/DemoJob.java
+1
-1
EndNode.java
.../byit-demo-client/src/main/java/com/byit/job/EndNode.java
+2
-3
StartNode.java
...yit-demo-client/src/main/java/com/byit/job/StartNode.java
+14
-0
TestAddFlow.java
...t-demo-client/src/main/java/com/byit/job/TestAddFlow.java
+145
-0
No files found.
byit-myth-core/myth-admin-core/src/main/java/com/byit/util/ApiFlowDagCheck.java
View file @
45ea0fbd
...
@@ -2,6 +2,7 @@ package com.byit.util;
...
@@ -2,6 +2,7 @@ package com.byit.util;
import
com.byit.enums.DagCheckEnum
;
import
com.byit.enums.DagCheckEnum
;
import
com.byit.job.dto.plugin.PluginBaseNode
;
import
com.byit.job.dto.plugin.PluginBaseNode
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.*
;
import
java.util.*
;
...
@@ -10,6 +11,7 @@ import java.util.*;
...
@@ -10,6 +11,7 @@ import java.util.*;
* @author: gml
* @author: gml
* @create: 2019-12-30 16:34
* @create: 2019-12-30 16:34
*/
*/
@Slf4j
public
class
ApiFlowDagCheck
{
public
class
ApiFlowDagCheck
{
//节点个数
//节点个数
...
@@ -131,10 +133,10 @@ public class ApiFlowDagCheck {
...
@@ -131,10 +133,10 @@ public class ApiFlowDagCheck {
}
}
}
}
if
(
number
!=
nodeNum
){
if
(
number
!=
nodeNum
){
System
.
out
.
println
(
"最后存在入度为1的结点,这个有向图是有回路的。"
);
log
.
debug
(
"最后存在入度为1的结点,这个有向图是有回路的。"
);
return
DagCheckEnum
.
LOOP
;
return
DagCheckEnum
.
LOOP
;
}
else
{
}
else
{
System
.
out
.
println
(
"这个有向图不存在回路,拓扑序列为:"
+
temp
.
toString
());
log
.
debug
(
"这个有向图不存在回路,拓扑序列为:{}"
,
temp
.
toString
());
return
DagCheckEnum
.
PASS
;
return
DagCheckEnum
.
PASS
;
}
}
}
}
...
...
byit-myth-core/myth-core-common/src/main/java/com/byit/job/dto/plugin/PluginBaseNode.java
View file @
45ea0fbd
...
@@ -23,7 +23,7 @@ public class PluginBaseNode {
...
@@ -23,7 +23,7 @@ public class PluginBaseNode {
private
String
desc
;
private
String
desc
;
/**
/**
* 类型 节点:node,
内嵌工作流:innerF
low
* 类型 节点:node,
工作流:f
low
*/
*/
private
String
type
;
private
String
type
;
...
@@ -33,6 +33,7 @@ public class PluginBaseNode {
...
@@ -33,6 +33,7 @@ public class PluginBaseNode {
private
String
author
;
private
String
author
;
/**
/**
* 上游
* 依赖的任务节点名称集合,只能是节点的名称,如果不是内嵌工作流不允许设置依赖
* 依赖的任务节点名称集合,只能是节点的名称,如果不是内嵌工作流不允许设置依赖
*/
*/
private
List
<
String
>
dependNodeNameList
;
private
List
<
String
>
dependNodeNameList
;
...
...
byit-myth-core/myth-core-common/src/main/java/com/byit/job/dto/plugin/PluginFlow.java
View file @
45ea0fbd
package
com
.
byit
.
job
.
dto
.
plugin
;
package
com
.
byit
.
job
.
dto
.
plugin
;
import
lombok.
Data
;
import
lombok.
*
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.List
;
...
@@ -11,6 +11,9 @@ import java.util.List;
...
@@ -11,6 +11,9 @@ import java.util.List;
* @create: 2019-12-30 10:44
* @create: 2019-12-30 10:44
*/
*/
@Data
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
PluginFlow
extends
PluginBaseNode
implements
Serializable
{
public
class
PluginFlow
extends
PluginBaseNode
implements
Serializable
{
/**
/**
...
...
byit-myth-core/myth-core-common/src/main/java/com/byit/job/dto/plugin/PluginFlowConfig.java
View file @
45ea0fbd
package
com
.
byit
.
job
.
dto
.
plugin
;
package
com
.
byit
.
job
.
dto
.
plugin
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
/**
* @description: 插件端工作流的配置
* @description: 插件端工作流的配置
...
@@ -8,6 +11,9 @@ import lombok.Data;
...
@@ -8,6 +11,9 @@ import lombok.Data;
* @create: 2019-12-30 11:16
* @create: 2019-12-30 11:16
*/
*/
@Data
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
PluginFlowConfig
{
public
class
PluginFlowConfig
{
/**
/**
...
...
demo-client/byit-demo-client/src/main/java/com/byit/job/DemoJob.java
View file @
45ea0fbd
...
@@ -14,7 +14,7 @@ import com.byit.job.vo.ReturnResult;
...
@@ -14,7 +14,7 @@ import com.byit.job.vo.ReturnResult;
public
class
DemoJob
extends
BaseJobHandler
{
public
class
DemoJob
extends
BaseJobHandler
{
@Override
@Override
public
ReturnResult
<
String
>
execute
(
String
s
)
throws
Exception
{
public
ReturnResult
<
String
>
execute
(
String
s
)
throws
Exception
{
System
.
out
.
println
(
"--------------任务就这样运行了----------------"
+
s
);
System
.
out
.
println
(
"--------------任务就这样运行了
addJob
----------------"
+
s
);
return
ReturnResult
.
SUCCESS
;
return
ReturnResult
.
SUCCESS
;
}
}
}
}
demo-client/byit-demo-client/src/main/java/com/byit/job/
DemoJob1
.java
→
demo-client/byit-demo-client/src/main/java/com/byit/job/
EndNode
.java
View file @
45ea0fbd
...
@@ -11,11 +11,10 @@ import com.byit.job.vo.ReturnResult;
...
@@ -11,11 +11,10 @@ import com.byit.job.vo.ReturnResult;
* @date: 2019/11/20 12:40
* @date: 2019/11/20 12:40
**/
**/
@JobHandler
(
"END"
)
@JobHandler
(
"END"
)
public
class
DemoJob1
extends
BaseJobHandler
{
public
class
EndNode
extends
BaseJobHandler
{
@Override
@Override
public
ReturnResult
<
String
>
execute
(
String
s
)
throws
Exception
{
public
ReturnResult
<
String
>
execute
(
String
s
)
throws
Exception
{
Thread
.
sleep
(
10000
);
System
.
out
.
println
(
"--------------END----------------"
+
s
);
System
.
out
.
println
(
"--------------DemoJob1----------------"
+
s
);
return
ReturnResult
.
SUCCESS
;
return
ReturnResult
.
SUCCESS
;
}
}
}
}
demo-client/byit-demo-client/src/main/java/com/byit/job/StartNode.java
0 → 100644
View file @
45ea0fbd
package
com
.
byit
.
job
;
import
com.byit.annotations.JobHandler
;
import
com.byit.job.handler.BaseJobHandler
;
import
com.byit.job.vo.ReturnResult
;
@JobHandler
(
"start"
)
public
class
StartNode
extends
BaseJobHandler
{
@Override
public
ReturnResult
<
String
>
execute
(
String
param
)
throws
Exception
{
System
.
out
.
println
(
"--------【start】----我摊牌了,我是亿万富翁------------"
);
return
ReturnResult
.
SUCCESS
;
}
}
demo-client/byit-demo-client/src/main/java/com/byit/job/TestAddFlow.java
0 → 100644
View file @
45ea0fbd
package
com
.
byit
.
job
;
import
com.byit.job.dto.plugin.*
;
import
com.byit.rpc.remoting.invoker.route.LoadBalance
;
import
com.byit.utils.JobUtils
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
public
class
TestAddFlow
{
public
static
void
main
(
String
[]
args
)
{
PluginPackage
pluginPackage
=
new
PluginPackage
();
pluginPackage
.
setWorkspaceName
(
"test"
);
pluginPackage
.
setFlow
(
createFlow
());
JobUtils
.
publish
(
pluginPackage
);
}
public
static
PluginFlow
createFlow
(){
PluginFlow
pluginFlow
=
new
PluginFlow
();
PluginFlowConfig
build
=
PluginFlowConfig
.
builder
().
alarmEmail
(
"huangfukexin@byitgroup.com,guominglei@byitgroup.com"
)
.
alarmlAction
(
"1"
)
.
execType
(
"1"
)
.
flowCron
(
"0 0/5 * * * ? *"
)
.
flowTimeout
(
TimeUnit
.
MINUTES
.
toMillis
(
30
))
.
priority
(
"2"
)
.
repeatCount
(
1
)
.
scheduleFollow
(
"1"
)
.
build
();
pluginFlow
.
setName
(
"测试任务流"
);
pluginFlow
.
setDesc
(
"这是一个测试的任务流"
);
pluginFlow
.
setConfig
(
build
);
pluginFlow
.
setPrincipal
(
"皇甫科星"
);
pluginFlow
.
setRePublish
(
false
);
pluginFlow
.
setAuthor
(
"huangfusuper"
);
pluginFlow
.
setNodeList
(
createNodes
());
return
pluginFlow
;
}
/**
* 创建节点
* @return
*/
public
static
List
<
PluginBaseNode
>
createNodes
(){
PluginNode
pluginNode1
=
new
PluginNode
();
PluginNodeConfig
pluginNodeConfig1
=
new
PluginNodeConfig
();
pluginNode1
.
setName
(
"start"
);
pluginNode1
.
setDesc
(
"我是开始节点,打死你"
);
pluginNode1
.
setType
(
"node"
);
pluginNode1
.
setAuthor
(
"郭郭"
);
pluginNode1
.
setJobType
(
"JAVA"
);
pluginNode1
.
setHandlerName
(
"start"
);
pluginNodeConfig1
.
setFailedRetryCount
(
2
);
pluginNodeConfig1
.
setFailedRetryInterval
(
TimeUnit
.
MINUTES
.
toSeconds
(
2
));
pluginNodeConfig1
.
setNodeCron
(
"0 0/7 * * * ? *"
);
pluginNodeConfig1
.
setNodeTimeout
(-
1L
);
pluginNodeConfig1
.
setPluginUrls
(
"http://127.0.0.1:8888"
);
pluginNodeConfig1
.
setPriority
(
"2"
);
pluginNodeConfig1
.
setRoutingStrategy
(
LoadBalance
.
ROUND
.
name
());
pluginNode1
.
setConfig
(
pluginNodeConfig1
);
PluginNode
pluginNode2
=
new
PluginNode
();
PluginNodeConfig
pluginNodeConfig2
=
new
PluginNodeConfig
();
pluginNode2
.
setName
(
"中间节点1"
);
pluginNode2
.
setDesc
(
"中间节点1"
);
pluginNode2
.
setType
(
"node"
);
pluginNode2
.
setAuthor
(
"皇甫"
);
pluginNode2
.
setJobType
(
"JAVA"
);
pluginNode2
.
setHandlerName
(
"addJob"
);
pluginNode2
.
setRunParam
(
"addJob1"
);
pluginNodeConfig2
.
setFailedRetryCount
(
2
);
pluginNodeConfig2
.
setFailedRetryInterval
(
TimeUnit
.
MINUTES
.
toSeconds
(
2
));
pluginNodeConfig2
.
setNodeCron
(
"0 0/7 * * * ? *"
);
pluginNodeConfig2
.
setNodeTimeout
(-
1L
);
pluginNodeConfig2
.
setPluginUrls
(
"http://127.0.0.1:8888"
);
pluginNodeConfig2
.
setPriority
(
"2"
);
pluginNodeConfig2
.
setRoutingStrategy
(
LoadBalance
.
ROUND
.
name
());
pluginNode2
.
setConfig
(
pluginNodeConfig2
);
pluginNode2
.
setDependNodeNameList
(
Collections
.
singletonList
(
"start"
));
PluginNode
pluginNode3
=
new
PluginNode
();
PluginNodeConfig
pluginNodeConfig3
=
new
PluginNodeConfig
();
pluginNode3
.
setName
(
"中间节点2"
);
pluginNode3
.
setDesc
(
"中间节点2"
);
pluginNode3
.
setType
(
"node"
);
pluginNode3
.
setAuthor
(
"皇甫"
);
pluginNode3
.
setJobType
(
"JAVA"
);
pluginNode3
.
setHandlerName
(
"addJob"
);
pluginNode3
.
setRunParam
(
"addJob2"
);
pluginNodeConfig3
.
setFailedRetryCount
(
2
);
pluginNodeConfig3
.
setFailedRetryInterval
(
TimeUnit
.
MINUTES
.
toSeconds
(
2
));
pluginNodeConfig3
.
setNodeCron
(
"0 0/7 * * * ? *"
);
pluginNodeConfig3
.
setNodeTimeout
(-
1L
);
pluginNodeConfig3
.
setPluginUrls
(
"http://127.0.0.1:8888"
);
pluginNodeConfig3
.
setPriority
(
"2"
);
pluginNodeConfig3
.
setRoutingStrategy
(
LoadBalance
.
ROUND
.
name
());
pluginNode3
.
setConfig
(
pluginNodeConfig3
);
pluginNode3
.
setDependNodeNameList
(
Collections
.
singletonList
(
"中间节点1"
));
PluginNode
pluginNode4
=
new
PluginNode
();
PluginNodeConfig
pluginNodeConfig4
=
new
PluginNodeConfig
();
pluginNode4
.
setName
(
"中间节点3"
);
pluginNode4
.
setDesc
(
"中间节点3"
);
pluginNode4
.
setType
(
"node"
);
pluginNode4
.
setAuthor
(
"皇甫"
);
pluginNode4
.
setJobType
(
"JAVA"
);
pluginNode4
.
setHandlerName
(
"addJob"
);
pluginNode4
.
setRunParam
(
"addJob3"
);
pluginNodeConfig4
.
setFailedRetryCount
(
2
);
pluginNodeConfig4
.
setFailedRetryInterval
(
TimeUnit
.
MINUTES
.
toSeconds
(
2
));
pluginNodeConfig4
.
setNodeCron
(
"0 0/7 * * * ? *"
);
pluginNodeConfig4
.
setNodeTimeout
(-
1L
);
pluginNodeConfig4
.
setPluginUrls
(
"http://127.0.0.1:8888"
);
pluginNodeConfig4
.
setPriority
(
"2"
);
pluginNodeConfig4
.
setRoutingStrategy
(
LoadBalance
.
ROUND
.
name
());
pluginNode4
.
setConfig
(
pluginNodeConfig4
);
pluginNode4
.
setDependNodeNameList
(
Collections
.
singletonList
(
"中间节点2"
));
PluginNode
pluginNode5
=
new
PluginNode
();
PluginNodeConfig
pluginNodeConfig5
=
new
PluginNodeConfig
();
pluginNode5
.
setName
(
"end"
);
pluginNode5
.
setDesc
(
"结束节点"
);
pluginNode5
.
setType
(
"node"
);
pluginNode5
.
setAuthor
(
"皇甫"
);
pluginNode5
.
setJobType
(
"JAVA"
);
pluginNode5
.
setHandlerName
(
"END"
);
pluginNode5
.
setRunParam
(
"END"
);
pluginNodeConfig5
.
setFailedRetryCount
(
2
);
pluginNodeConfig5
.
setFailedRetryInterval
(
TimeUnit
.
MINUTES
.
toSeconds
(
2
));
pluginNodeConfig5
.
setNodeCron
(
"0 0/7 * * * ? *"
);
pluginNodeConfig5
.
setNodeTimeout
(-
1L
);
pluginNodeConfig5
.
setPluginUrls
(
"http://127.0.0.1:8888"
);
pluginNodeConfig5
.
setPriority
(
"2"
);
pluginNodeConfig5
.
setRoutingStrategy
(
LoadBalance
.
ROUND
.
name
());
pluginNode5
.
setConfig
(
pluginNodeConfig5
);
pluginNode5
.
setDependNodeNameList
(
Collections
.
singletonList
(
"中间节点3"
));
return
Arrays
.
asList
(
pluginNode5
,
pluginNode4
,
pluginNode3
,
pluginNode2
,
pluginNode1
);
}
}
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