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
ff5b93ae
Commit
ff5b93ae
authored
Apr 09, 2020
by
huangfusuper
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/developer' into developer
parents
897e1a9d
d691a9a5
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
32 additions
and
33 deletions
+32
-33
FlowStatusSnapshootMapper.java
.../main/java/com/byit/mapper/FlowStatusSnapshootMapper.java
+10
-0
StatusSnapshootThreadRunHelper.java
...om/byit/thread/helper/StatusSnapshootThreadRunHelper.java
+17
-33
FlowStatusSnapshootMapper.xml
...e/src/main/resources/mapper/FlowStatusSnapshootMapper.xml
+5
-0
No files found.
byit-myth-core/myth-admin-core/src/main/java/com/byit/mapper/FlowStatusSnapshootMapper.java
View file @
ff5b93ae
...
...
@@ -47,4 +47,13 @@ public interface FlowStatusSnapshootMapper {
* @return
*/
List
<
FlowStatusSnapshoot
>
findByTime
(
@Param
(
"startTime"
)
Long
startTime
,
@Param
(
"endTime"
)
Long
endTime
);
/**
* 根据天、小时、工作流id获取快照信息
* @param date
* @param hour
* @param flowId
* @return
*/
List
<
FlowStatusSnapshoot
>
findByDateAndHourAndFlowId
(
@Param
(
"date"
)
String
date
,
@Param
(
"hour"
)
String
hour
,
@Param
(
"flowId"
)
Integer
flowId
);
}
\ No newline at end of file
byit-myth-core/myth-admin-core/src/main/java/com/byit/thread/helper/StatusSnapshootThreadRunHelper.java
View file @
ff5b93ae
...
...
@@ -37,10 +37,6 @@ public class StatusSnapshootThreadRunHelper extends BaseThreadRunHelper {
@Resource
private
JobTaskRunLogMapper
jobTaskRunLogMapper
;
@Resource
private
WaitingRecordMapper
waitingRecordMapper
;
@Resource
private
WaitingTaskMapper
waitingTaskMapper
;
@Resource
private
DataSource
dataSource
;
@Value
(
"${myth-job.snapshoot-date}"
)
private
Integer
snapshootDate
;
...
...
@@ -79,16 +75,21 @@ public class StatusSnapshootThreadRunHelper extends BaseThreadRunHelper {
//统计运行实例的数据
//如果存在实例
if
(
maxRunRecording
!=
null
){
//获取
上一个时间
Long
preHourTime
=
hourDateTime
.
minusHours
(
1
).
toInstant
(
ZoneOffset
.
of
(
"+8"
)
).
toEpochMilli
();
//获取
今天凌晨的时间戳
Long
time
=
LocalDate
.
now
().
atStartOfDay
(
ZoneOffset
.
ofHours
(
8
)).
toInstant
(
).
toEpochMilli
();
//从凌晨到现在是否有运行实例
if
(
preHourTime
.
longValue
()
>
maxRunRecording
.
getTriggerTime
().
longValue
()
&&
ScheduleStatusEnum
.
FINISH
.
getCode
().
equals
(
maxRunRecording
.
getFlowStatus
()
)){
if
(
time
.
longValue
()
>
maxRunRecording
.
getTriggerTime
().
longValue
(
)){
flowStatusSnapshoot
.
setFlowStatus
(
1
);
flowStatusSnapshoot
.
setUnstartNode
(
flow
.
getFlowNodeCount
());
flowStatusSnapshootList
.
add
(
flowStatusSnapshoot
);
}
else
{
//存在工作流的运行实例
}
else
{
//从凌晨到现在存在工作流的运行实例
//获取上一个小时的时间戳
Long
preHourTime
=
hourDateTime
.
minusHours
(
1
).
toInstant
(
ZoneOffset
.
of
(
"+8"
)).
toEpochMilli
();
//查询过去一个小时的和未完成的工作流实例
List
<
RunRecording
>
runRecordingList
=
runRecordingMapper
.
findByPreTime
(
new
Date
(
preHourTime
),
flow
.
getFlowId
());
//判断是否存在过去一个小时的和未完成的工作流实例
if
(
null
!=
runRecordingList
&&
runRecordingList
.
size
()
>
0
){
//如果存在,记录快照
runRecordingList
.
forEach
(
runRecording
->
{
FlowStatusSnapshoot
hourFlowStatusSnapshoot
=
new
FlowStatusSnapshoot
();
BeanUtils
.
copyProperties
(
flowStatusSnapshoot
,
hourFlowStatusSnapshoot
);
...
...
@@ -122,37 +123,20 @@ public class StatusSnapshootThreadRunHelper extends BaseThreadRunHelper {
}
flowStatusSnapshootList
.
add
(
hourFlowStatusSnapshoot
);
});
}
else
{
//如果不存在实例,获取上一个小时的运行快照保存
LocalDateTime
preHourLocalDateTime
=
localDateTime
.
minusHours
(
1
);
String
preHourDate
=
preHourLocalDateTime
.
format
(
DATE_FORMATTER
);
String
preHourHour
=
String
.
valueOf
(
preHourLocalDateTime
.
getHour
());
List
<
FlowStatusSnapshoot
>
preHourFlowStatusSnapshootList
=
flowStatusSnapshootMapper
.
findByDateAndHourAndFlowId
(
preHourDate
,
preHourHour
,
flow
.
getFlowId
());
flowStatusSnapshootList
.
addAll
(
preHourFlowStatusSnapshootList
);
}
}
}
else
{
//如果不存在运行实例
flowStatusSnapshoot
.
setUnstartNode
(
flow
.
getFlowNodeCount
());
flowStatusSnapshootList
.
add
(
flowStatusSnapshoot
);
}
/*
排队的运行实例已经放在run_recording表中,无需二次记录
//获取排队的运行实例
List<WaitingRecord> waitingRecordList = waitingRecordMapper.findByFlowId(flow.getFlowId());
if (waitingRecordList != null && waitingRecordList.size() > 0){
//如果存在正在排队的实例
waitingRecordList.forEach(waitingRecord -> {
//创建工作流快照
FlowStatusSnapshoot waitingStatusSnapshoot = new FlowStatusSnapshoot();
waitingStatusSnapshoot.setDay(date);
waitingStatusSnapshoot.setFlowId(flow.getFlowId());
waitingStatusSnapshoot.setHour(hour);
waitingStatusSnapshoot.setFlowName(flow.getFlowName());
waitingStatusSnapshoot.setWorkspaceId(flow.getWorkspaceId());
waitingStatusSnapshoot.setSnapshootTime(hourTime);
waitingStatusSnapshoot.setFlowStatus(1);
//获取排队的节点数目
List<WaitingTask> waitingTaskList = waitingTaskMapper.findAllByWaitId(waitingRecord.getWaitId());
if (waitingTaskList != null && waitingTaskList.size() > 0){
waitingStatusSnapshoot.setUnstartNode(waitingTaskList.size());
}
flowStatusSnapshootList.add(waitingStatusSnapshoot);
});
}*/
});
if
(
flowList
!=
null
&&
flowList
.
size
()
>
0
){
flowStatusSnapshootMapper
.
saveList
(
flowStatusSnapshootList
);
...
...
byit-myth-core/myth-admin-core/src/main/resources/mapper/FlowStatusSnapshootMapper.xml
View file @
ff5b93ae
...
...
@@ -205,6 +205,11 @@
where snapshoot_time
>
= #{startTime}
and snapshoot_time
<
= #{endTime}
</select>
<select
id=
"findByDateAndHourAndFlowId"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from flow_status_snapshoot
where `day` = #{date} and `hour` = #{hour} and flow_id = #{flowId}
</select>
<delete
id=
"deleteOutSnapShoot"
parameterType=
"java.lang.Long"
>
delete from flow_status_snapshoot
where snapshoot_time = #{outTime,jdbcType=BIGINT}
...
...
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