Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
middleware-automatic
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
shenjunjie
middleware-automatic
Commits
1353ee86
Commit
1353ee86
authored
May 18, 2023
by
liuyu
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'release' into 'master'
Release See merge request
!41
parents
19932bec
fb9ffe4e
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
198 additions
and
99 deletions
+198
-99
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/common/GenericAttribute.java
+4
-0
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/core/AutoMaticClient.java
+6
-2
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/core/TaskManager.java
+2
-2
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/dubbo/service/AutoMaticService.java
+8
-1
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/pojo/enums/TaskType.java
+16
-8
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/util/RedissonUtil.java
+5
-0
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/dubbo/service/AutoMaticService.java
+8
-1
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/dubbo/service/impl/AutoMaticServiceImpl.java
+7
-2
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/mission/ScheduledMission.java
+11
-4
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/service/TemplateTitleService.java
+8
-2
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/service/impl/TemplateTitleServiceImpl.java
+19
-13
middleware-automatic-center-son/src/main/java/com/zhiwei/middleware/automatic/son/service/TemplateTitleService.java
+23
-4
middleware-automatic-center-son/src/main/java/com/zhiwei/middleware/automatic/son/service/impl/TemplateTitleServiceImpl.java
+64
-56
middleware-automatic-center-son/src/main/java/com/zhiwei/middleware/automatic/son/task/service/TaskServiceCommon.java
+1
-1
middleware-automatic-center-son/src/main/java/com/zhiwei/middleware/automatic/son/task/service/TaskServiceTemplate.java
+16
-3
No files found.
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/common/GenericAttribute.java
View file @
1353ee86
...
...
@@ -10,6 +10,8 @@ public class GenericAttribute {
public
static
final
String
REDIS_MAP_KEY
=
"autoDataMap"
;
public
static
final
String
REDIS_MAP_LOSE_KEY
=
"autoDataMapLose"
;
public
static
final
double
SIMILAR_STANDARD
=
0.7
;
public
static
final
String
SON_ID
=
"sonId"
;
...
...
@@ -50,4 +52,6 @@ public class GenericAttribute {
public
static
final
String
RUNNING
=
"running"
;
public
static
final
String
URL
=
"url"
;
public
static
final
Long
WEEK_TIME
=
1000L
*
60
*
60
*
24
*
7
;
}
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/core/AutoMaticClient.java
View file @
1353ee86
...
...
@@ -32,8 +32,12 @@ public class AutoMaticClient {
autoMaticService
.
resetTemplate
(
group
,
templateTitle
);
}
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
)
{
return
autoMaticService
.
getTemplateTitleByProject
(
project
);
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLive
(
String
project
)
{
return
autoMaticService
.
getTemplateTitleByProjectByLive
(
project
);
}
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLost
(
String
project
)
{
return
autoMaticService
.
getTemplateTitleByProjectByLost
(
project
);
}
public
List
<
String
>
getMupdateByTemplateTitle
(
String
group
,
String
templateTitle
)
{
...
...
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/core/TaskManager.java
View file @
1353ee86
...
...
@@ -65,7 +65,7 @@ public class TaskManager {
}
// 任务间隔过滤
if
(
Objects
.
nonNull
(
autoTask
.
isSplitFilter
())
&&
Objects
.
nonNull
(
autoTask
.
getGroup
()))
{
String
runningKey
=
concat
(
GenericAttribute
.
RUNNING
,
autoTask
.
getGroup
());
String
runningKey
=
concat
(
GenericAttribute
.
RUNNING
,
autoTask
.
getGroup
()
,
String
.
valueOf
(
autoTask
.
isSplitFilter
())
);
if
(
Objects
.
nonNull
(
redissonUtil
.
getBucket
(
runningKey
))
&&
!
autoTask
.
isSplitFilter
())
{
log
.
info
(
"有同类型任务正在执行中:{}"
,
autoTask
.
getGroup
());
return
;
...
...
@@ -95,7 +95,7 @@ public class TaskManager {
}
// 删除正在运行得任务
if
(
Objects
.
nonNull
(
autoTask
.
isSplitFilter
()))
{
redissonUtil
.
deleteBucket
(
concat
(
GenericAttribute
.
RUNNING
,
autoTask
.
getGroup
()));
redissonUtil
.
deleteBucket
(
concat
(
GenericAttribute
.
RUNNING
,
autoTask
.
getGroup
()
,
String
.
valueOf
(
autoTask
.
isSplitFilter
())
));
}
}
}
catch
(
Exception
e
)
{
...
...
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/dubbo/service/AutoMaticService.java
View file @
1353ee86
...
...
@@ -33,7 +33,14 @@ public interface AutoMaticService {
* @param project 项目
* @return 模板集
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
);
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLive
(
String
project
);
/**
* 获取项目文本模板
* @param project 项目
* @return 模板集
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLost
(
String
project
);
/**
* 根据模板标题获取数据(仅最新100条)
...
...
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/pojo/enums/TaskType.java
View file @
1353ee86
package
com
.
zhiwei
.
middleware
.
automatic
.
server
.
pojo
.
enums
;
public
enum
TaskType
{
COMMON_ONE
(
"common_one"
,
"commonCache"
),
COMMON_TWO
(
"common_two"
,
"commonCache"
),
TEMPLATE
(
"template"
,
null
),
TEMPLATE_MODIFY
(
"template_modify"
,
null
),
TEMPLATE_RESET
(
"template_reset"
,
null
),
TEMPLATE_RECORD
(
"template_record"
,
null
),
TEMPLATE_CLEAR_RETRY
(
"template_clear_retry"
,
null
);
COMMON_ONE
(
"common_one"
,
"commonCache"
,
"自动标注任务-单项目"
),
COMMON_TWO
(
"common_two"
,
"commonCache"
,
"自动标注任务-多项目"
),
TEMPLATE
(
"template"
,
null
,
"模板聚合任务"
),
TEMPLATE_MODIFY
(
"template_modify"
,
null
,
"模板修改任务"
),
TEMPLATE_RESET
(
"template_reset"
,
null
,
"模板重置任务"
),
TEMPLATE_RECORD
(
"template_record"
,
null
,
"模板特征值清除记录任务"
),
TEMPLATE_CLEAR_RETRY
(
"template_clear_retry"
,
null
,
"模板重置模板重试任务"
),
TEMPLATE_LOST_RESET
(
"template_lost_reset"
,
null
,
"过期重置模板清除任务"
);
final
String
type
;
final
String
cacheId
;
TaskType
(
String
type
,
String
cacheId
)
{
final
String
message
;
TaskType
(
String
type
,
String
cacheId
,
String
message
)
{
this
.
type
=
type
;
this
.
cacheId
=
cacheId
;
this
.
message
=
message
;
}
public
String
getType
()
{
...
...
@@ -26,6 +30,10 @@ public enum TaskType {
return
cacheId
;
}
public
String
getMessage
()
{
return
message
;
}
public
static
TaskType
create
(
String
type
)
{
for
(
TaskType
taskType
:
TaskType
.
values
())
{
if
(
taskType
.
type
.
equals
(
type
))
{
...
...
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/util/RedissonUtil.java
View file @
1353ee86
...
...
@@ -88,6 +88,11 @@ public class RedissonUtil {
map
.
put
(
group
,
value
);
}
public
void
removeMapValue
(
String
key
,
String
group
)
{
RMap
<
String
,
String
>
map
=
redissonClient
.
getMap
(
redisKey
(
key
));
map
.
remove
(
group
);
}
public
List
<
String
>
getList
(
String
redisKey
)
{
return
redissonClient
.
getList
(
redisKey
(
redisKey
));
...
...
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/dubbo/service/AutoMaticService.java
View file @
1353ee86
...
...
@@ -37,7 +37,14 @@ public interface AutoMaticService {
* @param project 项目
* @return 模板集
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
);
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLive
(
String
project
);
/**
* 获取项目文本模板
* @param project 项目
* @return 模板集
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLost
(
String
project
);
/**
* 根据模板标题获取数据(仅最新100条)
...
...
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/dubbo/service/impl/AutoMaticServiceImpl.java
View file @
1353ee86
...
...
@@ -67,8 +67,13 @@ public class AutoMaticServiceImpl implements AutoMaticService {
}
@Override
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
)
{
return
templateTitleService
.
getTemplateTitleByProject
(
project
);
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLive
(
String
project
)
{
return
templateTitleService
.
getTemplateTitleByProjectLive
(
project
);
}
@Override
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLost
(
String
project
)
{
return
templateTitleService
.
getTemplateTitleByProjectLost
(
project
);
}
@Override
...
...
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/mission/ScheduledMission.java
View file @
1353ee86
...
...
@@ -65,7 +65,7 @@ public class ScheduledMission {
for
(
String
project
:
asyncTask
.
findAllGroup
())
{
//模板聚合任务
putTask
(
project
,
startTime
,
endTime
,
true
);
putTaskBy
(
project
);
putTaskBy
Reset
(
project
);
}
// 模板记录清除任务
putTaskByRecord
();
...
...
@@ -87,13 +87,20 @@ public class ScheduledMission {
TaskManager
.
getInstance
().
putTask
(
autoTask
);
}
private
void
putTaskBy
(
String
group
)
{
Map
<
String
,
TemplateTitleVo
>
project
=
templateTitleService
.
getTemplateTitleByProject
(
group
);
private
void
putTaskBy
Reset
(
String
group
)
{
Map
<
String
,
TemplateTitleVo
>
project
=
templateTitleService
.
getTemplateTitleByProject
Lost
(
group
);
for
(
Map
.
Entry
<
String
,
TemplateTitleVo
>
entry
:
project
.
entrySet
())
{
if
(
entry
.
getValue
().
getStatus
()
==
TemplateStatus
.
重置失败
)
{
TemplateTitleVo
value
=
entry
.
getValue
();
if
(
value
.
getStatus
()
==
TemplateStatus
.
重置失败
)
{
AutoTask
autoTask
=
new
AutoTask
(
TaskType
.
TEMPLATE_CLEAR_RETRY
.
getType
(),
group
);
autoTask
.
getParamSource
().
put
(
GenericAttribute
.
TEMPLATE_TITLE
,
entry
.
getKey
());
TaskManager
.
getInstance
().
putTask
(
autoTask
);
continue
;
}
if
(
value
.
getUpdateTime
().
getTime
()
>
(
System
.
currentTimeMillis
()
-
GenericAttribute
.
WEEK_TIME
))
{
AutoTask
autoTask
=
new
AutoTask
(
TaskType
.
TEMPLATE_LOST_RESET
.
getType
(),
group
);
autoTask
.
getParamSource
().
put
(
GenericAttribute
.
TEMPLATE_TITLE
,
entry
.
getKey
());
TaskManager
.
getInstance
().
putTask
(
autoTask
);
}
}
}
...
...
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/service/TemplateTitleService.java
View file @
1353ee86
...
...
@@ -8,11 +8,17 @@ import java.util.Map;
public
interface
TemplateTitleService
{
/**
* 获取项目文本模板
* 获取
有效的
项目文本模板
* @param project 项目
* @return 模板集
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
);
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectLive
(
String
project
);
/**
* 回去重置的项目文本模板
* @return 模板集
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectLost
(
String
project
);
/**
* 根据模板标题获取数据(仅最新100条)
...
...
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/service/impl/TemplateTitleServiceImpl.java
View file @
1353ee86
...
...
@@ -36,22 +36,19 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
}
@Override
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
)
{
Map
<
String
,
String
>
mapValue
=
redissonUtil
.
getMapValue
(
Tools
.
assembleKey
(
GenericAttribute
.
REDIS_MAP_KEY
,
project
));
if
(
Tools
.
isEmpty
(
mapValue
))
{
return
new
HashMap
<>();
}
Map
<
String
,
TemplateTitleVo
>
res
=
Tools
.
restoreTMap
(
mapValue
,
TemplateTitleVo
.
class
);
for
(
Map
.
Entry
<
String
,
TemplateTitleVo
>
entry
:
res
.
entrySet
())
{
setMarkCount
(
entry
.
getKey
(),
entry
.
getValue
());
}
return
res
;
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectLive
(
String
project
)
{
return
getTemplateTitleByProject
(
GenericAttribute
.
REDIS_MAP_KEY
,
project
);
}
@Override
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectLost
(
String
project
)
{
return
getTemplateTitleByProject
(
GenericAttribute
.
REDIS_MAP_LOSE_KEY
,
project
);
}
@Override
public
List
<
String
>
getMupdateByTemplateTitle
(
String
group
,
String
templateTitle
)
{
try
{
TemplateTitleVo
templateTitleVo
=
getTemplateTitleByProject
(
group
).
get
(
templateTitle
);
TemplateTitleVo
templateTitleVo
=
getTemplateTitleByProject
Live
(
group
).
get
(
templateTitle
);
if
(
null
==
templateTitleVo
||
TemplateStatus
.
已重置
==
templateTitleVo
.
getStatus
())
{
return
null
;
}
...
...
@@ -65,7 +62,7 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
@Override
public
String
tryGetTemplateTitleByMupdate
(
String
group
,
String
title
,
String
mupdate
)
{
Map
<
String
,
TemplateTitleVo
>
templateTitleVos
=
getTemplateTitleByProject
(
group
);
Map
<
String
,
TemplateTitleVo
>
templateTitleVos
=
getTemplateTitleByProject
Live
(
group
);
List
<
Map
<
String
,
Object
>>
filterTitles
=
new
ArrayList
<>();
for
(
String
templateTitle
:
templateTitleVos
.
keySet
())
{
if
(
TemplateStatus
.
已重置
==
templateTitleVos
.
get
(
templateTitle
).
getStatus
())
{
...
...
@@ -101,7 +98,7 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
res
.
put
(
"errorMessage"
,
"标题或项目为空"
);
return
res
;
}
Map
<
String
,
TemplateTitleVo
>
templateTitleVoMap
=
getTemplateTitleByProject
(
project
);
Map
<
String
,
TemplateTitleVo
>
templateTitleVoMap
=
getTemplateTitleByProject
Live
(
project
);
if
(
templateTitleVoMap
.
isEmpty
())
{
res
.
put
(
"errorMessage"
,
"该项目组未有聚合集"
);
return
res
;
...
...
@@ -136,6 +133,15 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
return
res
;
}
private
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
key
,
String
project
)
{
Map
<
String
,
String
>
mapValue
=
redissonUtil
.
getMapValue
(
Tools
.
assembleKey
(
key
,
project
));
if
(
Tools
.
isEmpty
(
mapValue
))
{
return
new
HashMap
<>();
}
return
Tools
.
restoreTMap
(
mapValue
,
TemplateTitleVo
.
class
);
}
private
void
setMarkCount
(
String
group
,
TemplateTitleVo
vo
)
{
vo
.
setMarkSum
(
redissonUtil
.
getCount
(
Tools
.
assembleKey
(
COUNT_KEY
,
group
,
vo
.
getId
())));
}
...
...
middleware-automatic-center-son/src/main/java/com/zhiwei/middleware/automatic/son/service/TemplateTitleService.java
View file @
1353ee86
...
...
@@ -2,19 +2,23 @@ package com.zhiwei.middleware.automatic.son.service;
import
com.zhiwei.middleware.automatic.server.pojo.TemplateRecord
;
import
com.zhiwei.middleware.automatic.server.pojo.TemplateTitleVo
;
import
com.zhiwei.middleware.automatic.son.dao.TemplateTempRecord
;
import
java.util.List
;
import
java.util.Map
;
public
interface
TemplateTitleService
{
/**
* 获取项目文本模板
* 获取
有效的
项目文本模板
* @param project 项目
* @return 模板集
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
);
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectLive
(
String
project
);
/**
* 回去重置的项目文本模板
* @return 模板集
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectLost
(
String
project
);
/**
* 添加项目文本模板
...
...
@@ -61,4 +65,19 @@ public interface TemplateTitleService {
* @param fixTag 标签
*/
void
setTemplateValue
(
String
group
,
String
title
,
String
fixTag
);
/**
* 清除模板
* @param group 项目
* @param title 标题
*/
void
deleteTemplate
(
String
group
,
String
title
);
/**
* 修改模板特征值信息
* @param title 标题
* @param project 项目
* @return 是否成功
*/
boolean
modifyTemplateMarkerInfo
(
String
title
,
String
project
);
}
middleware-automatic-center-son/src/main/java/com/zhiwei/middleware/automatic/son/service/impl/TemplateTitleServiceImpl.java
View file @
1353ee86
...
...
@@ -25,12 +25,10 @@ import org.elasticsearch.search.SearchHits;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
import
org.springframework.stereotype.Service
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
@Service
...
...
@@ -66,13 +64,13 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
@Override
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
)
{
Map
<
String
,
String
>
mapValue
=
redissonUtil
.
getMapValue
(
Tools
.
assembleKey
(
GenericAttribute
.
REDIS_MAP_KEY
,
project
)
);
// Map<String, String> mapValue = redissonUtil.getMapValue(Tools.assembleKey(getFileDayName(project)));
if
(
Tools
.
isEmpty
(
mapValue
))
{
return
new
HashMap
<>();
}
return
Tools
.
restoreTMap
(
mapValue
,
TemplateTitleVo
.
class
);
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
Live
(
String
project
)
{
return
getTemplateTitleByProject
(
GenericAttribute
.
REDIS_MAP_KEY
,
project
);
}
@Override
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectLost
(
String
project
)
{
return
getTemplateTitleByProject
(
GenericAttribute
.
REDIS_MAP_LOSE_KEY
,
project
);
}
@Override
...
...
@@ -102,28 +100,17 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
public
boolean
resetTemplate
(
String
group
,
String
title
)
{
// 防止增加模板标题有带符号的问题
String
templateTitle
=
Tools
.
filterSymbol
(
title
);
Map
<
String
,
TemplateTitleVo
>
map
=
getTemplateTitleByProject
(
group
);
Map
<
String
,
TemplateTitleVo
>
map
=
getTemplateTitleByProject
Live
(
group
);
if
(
Objects
.
isNull
(
map
.
get
(
templateTitle
)))
{
return
false
;
}
TemplateTitleVo
templateTitleVo
=
map
.
get
(
templateTitle
);
// 只要在运行中的模板 才能重置
if
(
Objects
.
isNull
(
templateTitleVo
.
getStatus
())
||
templateTitleVo
.
getStatus
().
name
().
equals
(
TemplateStatus
.
运行中
.
name
()))
{
templateTitleVo
.
setStatus
(
TemplateStatus
.
重置中
);
templateTitleVo
.
setStatus
(
TemplateStatus
.
已重置
);
setTemplateValue
(
group
,
templateTitle
,
templateTitleVo
);
// 修改模板的标注信息
executor
.
execute
(()
->
{
try
{
modifyTemplateMarkerInfo
(
templateTitleVo
,
group
);
templateTitleVo
.
setStatus
(
TemplateStatus
.
已重置
);
templateRecordDao
.
removeTemplateRecord
(
new
Query
(
Criteria
.
where
(
"templateId"
).
is
(
templateTitleVo
.
getId
())));
}
catch
(
Exception
e
)
{
templateTitleVo
.
setStatus
(
TemplateStatus
.
重置失败
);
log
.
error
(
"重置模板:修改聚和集错误,title:{},以加入重试队列"
,
templateTitleVo
.
getTemplateTitle
());
}
finally
{
setTemplateValue
(
group
,
templateTitle
,
templateTitleVo
);
}
});
redissonUtil
.
setMapValue
(
Tools
.
assembleKey
(
GenericAttribute
.
REDIS_MAP_LOSE_KEY
,
group
),
templateTitle
,
JSONObject
.
toJSONString
(
templateTitleVo
));
deleteTemplate
(
group
,
title
);
return
true
;
}
return
false
;
...
...
@@ -139,6 +126,59 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
setTemplateValue
(
group
,
title
,
null
,
fixTag
);
}
@Override
public
void
deleteTemplate
(
String
group
,
String
title
)
{
redissonUtil
.
removeMapValue
(
Tools
.
assembleKey
(
GenericAttribute
.
REDIS_MAP_KEY
,
group
),
title
);
}
private
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
key
,
String
project
)
{
Map
<
String
,
String
>
mapValue
=
redissonUtil
.
getMapValue
(
Tools
.
assembleKey
(
key
,
project
));
if
(
Tools
.
isEmpty
(
mapValue
))
{
return
new
HashMap
<>();
}
return
Tools
.
restoreTMap
(
mapValue
,
TemplateTitleVo
.
class
);
}
/**
* 模板自动标注的历史数据修改为新标签
* @param title 模板
* @return 是否修改成功
*/
public
boolean
modifyTemplateMarkerInfo
(
String
title
,
String
project
)
{
TemplateTitleVo
templateTitleVo
=
getTemplateTitleByProjectLost
(
project
).
get
(
title
);
try
{
long
now
=
System
.
currentTimeMillis
();
long
count
=
templateRecordDao
.
count
(
new
Query
(
Criteria
.
where
(
"templateId"
).
is
(
templateTitleVo
.
getId
())));
if
(
count
==
0
)
{
return
true
;
}
int
page
=
(
int
)
((
count
)+
GenericAttribute
.
POINT_SIZE
-
1
)
/
GenericAttribute
.
POINT_SIZE
;
for
(
int
i
=
0
;
i
<
page
;
i
++)
{
Query
query
=
new
Query
(
Criteria
.
where
(
"templateId"
).
is
(
templateTitleVo
.
getId
()));
query
.
skip
(
i
*
GenericAttribute
.
POINT_SIZE
)
.
limit
(
GenericAttribute
.
POINT_SIZE
);
// mongo 查询记录信息
List
<
TemplateRecord
>
templateRecord
=
templateRecordDao
.
findTemplateRecord
(
query
);
// es 查询
SearchHits
hits
=
findByMupdateInfos
(
templateRecord
.
stream
().
map
(
TemplateRecord:
:
getMupdate
).
collect
(
Collectors
.
toList
()));
// 转换成markInfo
List
<
MarkInfo
>
collect
=
Arrays
.
stream
(
hits
.
getHits
())
.
map
(
e
->
MarkInfoUtil
.
distinguishMarkInfo
(
e
,
null
))
.
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
//发送给标注中间件处理
dubboHandler
.
markUpsert
(
collect
);
}
templateRecordDao
.
removeTemplateRecord
(
new
Query
(
Criteria
.
where
(
"templateId"
).
is
(
templateTitleVo
.
getId
())));
log
.
info
(
"自动标注模板:模板已改动,项目:{},模板标题:{},特征值数量:{}, 耗时:{}"
,
project
,
templateTitleVo
.
getTemplateTitle
(),
count
,
System
.
currentTimeMillis
()
-
now
);
}
catch
(
Exception
e
)
{
templateTitleVo
.
setStatus
(
TemplateStatus
.
重置失败
);
log
.
error
(
"重置模板:修改聚和集错误,title:{},以加入重试队列"
,
templateTitleVo
.
getTemplateTitle
());
redissonUtil
.
setMapValue
(
Tools
.
assembleKey
(
GenericAttribute
.
REDIS_MAP_LOSE_KEY
,
project
),
title
,
JSONObject
.
toJSONString
(
templateTitleVo
));
}
return
true
;
}
private
void
setTemplateValue
(
String
group
,
String
title
,
TemplateTitleVo
templateTitleVo
,
String
fixTag
)
{
String
lockKey
=
Tools
.
assembleKey
(
GenericAttribute
.
LOCK
,
title
);
try
{
...
...
@@ -170,38 +210,6 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
}
/**
* 模板自动标注的历史数据修改为新标签
* @param templateTitleVo 模板
* @return 是否修改成功
*/
private
boolean
modifyTemplateMarkerInfo
(
TemplateTitleVo
templateTitleVo
,
String
project
)
throws
Exception
{
long
now
=
System
.
currentTimeMillis
();
long
count
=
templateRecordDao
.
count
(
new
Query
(
Criteria
.
where
(
"templateId"
).
is
(
templateTitleVo
.
getId
())));
if
(
count
==
0
)
{
return
true
;
}
int
page
=
(
int
)
((
count
)+
GenericAttribute
.
POINT_SIZE
-
1
)
/
GenericAttribute
.
POINT_SIZE
;
for
(
int
i
=
0
;
i
<
page
;
i
++)
{
Query
query
=
new
Query
(
Criteria
.
where
(
"templateId"
).
is
(
templateTitleVo
.
getId
()));
query
.
skip
(
i
*
GenericAttribute
.
POINT_SIZE
)
.
limit
(
GenericAttribute
.
POINT_SIZE
);
// mongo 查询记录信息
List
<
TemplateRecord
>
templateRecord
=
templateRecordDao
.
findTemplateRecord
(
query
);
// es 查询
SearchHits
hits
=
findByMupdateInfos
(
templateRecord
.
stream
().
map
(
TemplateRecord:
:
getMupdate
).
collect
(
Collectors
.
toList
()));
// 转换成markInfo
List
<
MarkInfo
>
collect
=
Arrays
.
stream
(
hits
.
getHits
())
.
map
(
e
->
MarkInfoUtil
.
distinguishMarkInfo
(
e
,
null
))
.
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
//发送给标注中间件处理
dubboHandler
.
markUpsert
(
collect
);
}
log
.
info
(
"自动标注模板:模板已改动,项目:{},模板标题:{},特征值数量:{}, 耗时:{}"
,
project
,
templateTitleVo
.
getTemplateTitle
(),
count
,
System
.
currentTimeMillis
()
-
now
);
return
true
;
}
/**
* 根据特征值查询es数据
* @param mupdate 特征值
* @return es返回值
...
...
middleware-automatic-center-son/src/main/java/com/zhiwei/middleware/automatic/son/task/service/TaskServiceCommon.java
View file @
1353ee86
...
...
@@ -158,7 +158,7 @@ public class TaskServiceCommon extends BaseTaskTypePair<TaskServiceCommon.TaskCo
private
void
projectAutoMark
(
Map
<
String
,
List
<
MarkInfo
>>
groupMap
)
{
for
(
Map
.
Entry
<
String
,
List
<
MarkInfo
>>
entry
:
groupMap
.
entrySet
())
{
try
{
Map
<
String
,
TemplateTitleVo
>
template
=
templateTitleService
.
getTemplateTitleByProject
(
entry
.
getKey
());
Map
<
String
,
TemplateTitleVo
>
template
=
templateTitleService
.
getTemplateTitleByProject
Live
(
entry
.
getKey
());
clearTemplateDaySum
(
template
);
asyncTitleMark
(
entry
.
getKey
(),
entry
.
getValue
(),
template
);
}
catch
(
Exception
e
)
{
...
...
middleware-automatic-center-son/src/main/java/com/zhiwei/middleware/automatic/son/task/service/TaskServiceTemplate.java
View file @
1353ee86
...
...
@@ -68,8 +68,9 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
taskCache
(
TaskType
.
TEMPLATE
,
this
::
templateRun
);
taskCache
(
TaskType
.
TEMPLATE_MODIFY
,
this
::
templateModify
);
taskCache
(
TaskType
.
TEMPLATE_RESET
,
this
::
templateReset
);
taskCache
(
TaskType
.
TEMPLATE_CLEAR_RETRY
,
this
::
template
Rese
t
);
taskCache
(
TaskType
.
TEMPLATE_CLEAR_RETRY
,
this
::
template
Los
t
);
taskCache
(
TaskType
.
TEMPLATE_RECORD
,
this
::
templateRecordClean
);
taskCache
(
TaskType
.
TEMPLATE_LOST_RESET
,
this
::
templateLost
);
}
@Override
...
...
@@ -83,7 +84,7 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
long
now
=
System
.
currentTimeMillis
();
TaskTemplateFunctional
pair
=
getPairValue
(
autoTask
.
getType
());
pair
.
template
(
autoTask
);
log
.
info
(
"
模板任务结束, 项目:{},开始时间:{},结束时间:{},耗时:{}"
,
autoTask
.
getGroup
(),
log
.
info
(
"
{}结束, 项目:{},开始时间:{},结束时间:{},耗时:{}"
,
getPairKey
(
autoTask
.
getType
()).
getMessage
()
,
autoTask
.
getGroup
(),
Tools
.
TIME_FORMAT
.
format
(
autoTask
.
getParamSource
().
getLong
(
GenericAttribute
.
START_PARAM
)),
Tools
.
TIME_FORMAT
.
format
(
autoTask
.
getParamSource
().
getLong
(
GenericAttribute
.
START_PARAM
)),
System
.
currentTimeMillis
()
-
now
);
},
autoTask
));
...
...
@@ -94,6 +95,10 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
log
.
info
(
executorLog
,
"模板聚合"
,
executor
.
getActiveCount
(),
executor
.
getQueue
().
size
());
}
/**
* 模板清除任务
* @param autoTask 参数
*/
private
void
templateRecordClean
(
AutoTask
autoTask
)
{
templateRecordDao
.
removeTemplateRecord
(
new
Query
(
Criteria
.
where
(
"createAt"
).
lt
(
autoTask
.
getParamSource
().
getLong
(
GenericAttribute
.
END_PARAM
))));
}
...
...
@@ -140,6 +145,13 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
}
}
/**
* 重置中模板清除任务
*/
private
void
templateLost
(
AutoTask
autoTask
)
{
templateTitleService
.
modifyTemplateMarkerInfo
(
autoTask
.
getParamSource
().
getString
(
GenericAttribute
.
TEMPLATE_TITLE
),
autoTask
.
getGroup
());
}
/**
* 查询该项目 指定时间范围的数据
...
...
@@ -176,7 +188,7 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
//聚合模板
Map
<
String
,
TemplateTitleVo
>
aggregation
=
aggregation
(
transferMark
(
sourceList
));
//旧的聚合模板
Map
<
String
,
TemplateTitleVo
>
templateTitleByProject
=
templateTitleService
.
getTemplateTitleByProject
(
group
).
entrySet
().
stream
()
Map
<
String
,
TemplateTitleVo
>
templateTitleByProject
=
templateTitleService
.
getTemplateTitleByProject
Live
(
group
).
entrySet
().
stream
()
.
filter
(
e
->
{
String
title
=
e
.
getKey
();
TemplateTitleVo
templateTitleVo
=
e
.
getValue
();
...
...
@@ -187,6 +199,7 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
// 移除7天有效期外的数据
if
(
System
.
currentTimeMillis
()
-
updateTime
>
ONE_DAY
*
7
*
1000
)
{
log
.
info
(
"{}-移除过期模板标题:{},最后更新时间:{}"
,
group
,
title
,
updateTime
);
templateTitleService
.
deleteTemplate
(
group
,
title
);
return
false
;
}
else
if
(
e
.
getValue
().
getStatus
()
==
TemplateStatus
.
已重置
)
{
log
.
info
(
"已重置的模板从内存中删除,模板title:{}"
,
e
.
getKey
());
...
...
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