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
67a589f4
Commit
67a589f4
authored
May 18, 2023
by
liuyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2023年05/18 标注模板实时,重置状态缓存区分
parent
83cd7a9d
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 @
67a589f4
...
@@ -10,6 +10,8 @@ public class GenericAttribute {
...
@@ -10,6 +10,8 @@ public class GenericAttribute {
public
static
final
String
REDIS_MAP_KEY
=
"autoDataMap"
;
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
double
SIMILAR_STANDARD
=
0.7
;
public
static
final
String
SON_ID
=
"sonId"
;
public
static
final
String
SON_ID
=
"sonId"
;
...
@@ -50,4 +52,6 @@ public class GenericAttribute {
...
@@ -50,4 +52,6 @@ public class GenericAttribute {
public
static
final
String
RUNNING
=
"running"
;
public
static
final
String
RUNNING
=
"running"
;
public
static
final
String
URL
=
"url"
;
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 @
67a589f4
...
@@ -32,8 +32,12 @@ public class AutoMaticClient {
...
@@ -32,8 +32,12 @@ public class AutoMaticClient {
autoMaticService
.
resetTemplate
(
group
,
templateTitle
);
autoMaticService
.
resetTemplate
(
group
,
templateTitle
);
}
}
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
)
{
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLive
(
String
project
)
{
return
autoMaticService
.
getTemplateTitleByProject
(
project
);
return
autoMaticService
.
getTemplateTitleByProjectByLive
(
project
);
}
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLost
(
String
project
)
{
return
autoMaticService
.
getTemplateTitleByProjectByLost
(
project
);
}
}
public
List
<
String
>
getMupdateByTemplateTitle
(
String
group
,
String
templateTitle
)
{
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 @
67a589f4
...
@@ -65,7 +65,7 @@ public class TaskManager {
...
@@ -65,7 +65,7 @@ public class TaskManager {
}
}
// 任务间隔过滤
// 任务间隔过滤
if
(
Objects
.
nonNull
(
autoTask
.
isSplitFilter
())
&&
Objects
.
nonNull
(
autoTask
.
getGroup
()))
{
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
())
{
if
(
Objects
.
nonNull
(
redissonUtil
.
getBucket
(
runningKey
))
&&
!
autoTask
.
isSplitFilter
())
{
log
.
info
(
"有同类型任务正在执行中:{}"
,
autoTask
.
getGroup
());
log
.
info
(
"有同类型任务正在执行中:{}"
,
autoTask
.
getGroup
());
return
;
return
;
...
@@ -95,7 +95,7 @@ public class TaskManager {
...
@@ -95,7 +95,7 @@ public class TaskManager {
}
}
// 删除正在运行得任务
// 删除正在运行得任务
if
(
Objects
.
nonNull
(
autoTask
.
isSplitFilter
()))
{
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
)
{
}
catch
(
Exception
e
)
{
...
...
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/dubbo/service/AutoMaticService.java
View file @
67a589f4
...
@@ -33,7 +33,14 @@ public interface AutoMaticService {
...
@@ -33,7 +33,14 @@ public interface AutoMaticService {
* @param project 项目
* @param project 项目
* @return 模板集
* @return 模板集
*/
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
);
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLive
(
String
project
);
/**
* 获取项目文本模板
* @param project 项目
* @return 模板集
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLost
(
String
project
);
/**
/**
* 根据模板标题获取数据(仅最新100条)
* 根据模板标题获取数据(仅最新100条)
...
...
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/pojo/enums/TaskType.java
View file @
67a589f4
package
com
.
zhiwei
.
middleware
.
automatic
.
server
.
pojo
.
enums
;
package
com
.
zhiwei
.
middleware
.
automatic
.
server
.
pojo
.
enums
;
public
enum
TaskType
{
public
enum
TaskType
{
COMMON_ONE
(
"common_one"
,
"commonCache"
),
COMMON_ONE
(
"common_one"
,
"commonCache"
,
"自动标注任务-单项目"
),
COMMON_TWO
(
"common_two"
,
"commonCache"
),
COMMON_TWO
(
"common_two"
,
"commonCache"
,
"自动标注任务-多项目"
),
TEMPLATE
(
"template"
,
null
),
TEMPLATE
(
"template"
,
null
,
"模板聚合任务"
),
TEMPLATE_MODIFY
(
"template_modify"
,
null
),
TEMPLATE_MODIFY
(
"template_modify"
,
null
,
"模板修改任务"
),
TEMPLATE_RESET
(
"template_reset"
,
null
),
TEMPLATE_RESET
(
"template_reset"
,
null
,
"模板重置任务"
),
TEMPLATE_RECORD
(
"template_record"
,
null
),
TEMPLATE_RECORD
(
"template_record"
,
null
,
"模板特征值清除记录任务"
),
TEMPLATE_CLEAR_RETRY
(
"template_clear_retry"
,
null
);
TEMPLATE_CLEAR_RETRY
(
"template_clear_retry"
,
null
,
"模板重置模板重试任务"
),
TEMPLATE_LOST_RESET
(
"template_lost_reset"
,
null
,
"过期重置模板清除任务"
);
final
String
type
;
final
String
type
;
final
String
cacheId
;
final
String
cacheId
;
TaskType
(
String
type
,
String
cacheId
)
{
final
String
message
;
TaskType
(
String
type
,
String
cacheId
,
String
message
)
{
this
.
type
=
type
;
this
.
type
=
type
;
this
.
cacheId
=
cacheId
;
this
.
cacheId
=
cacheId
;
this
.
message
=
message
;
}
}
public
String
getType
()
{
public
String
getType
()
{
...
@@ -26,6 +30,10 @@ public enum TaskType {
...
@@ -26,6 +30,10 @@ public enum TaskType {
return
cacheId
;
return
cacheId
;
}
}
public
String
getMessage
()
{
return
message
;
}
public
static
TaskType
create
(
String
type
)
{
public
static
TaskType
create
(
String
type
)
{
for
(
TaskType
taskType
:
TaskType
.
values
())
{
for
(
TaskType
taskType
:
TaskType
.
values
())
{
if
(
taskType
.
type
.
equals
(
type
))
{
if
(
taskType
.
type
.
equals
(
type
))
{
...
...
middleware-automatic-center-client/src/main/java/com/zhiwei/middleware/automatic/server/util/RedissonUtil.java
View file @
67a589f4
...
@@ -88,6 +88,11 @@ public class RedissonUtil {
...
@@ -88,6 +88,11 @@ public class RedissonUtil {
map
.
put
(
group
,
value
);
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
)
{
public
List
<
String
>
getList
(
String
redisKey
)
{
return
redissonClient
.
getList
(
redisKey
(
redisKey
));
return
redissonClient
.
getList
(
redisKey
(
redisKey
));
...
...
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/dubbo/service/AutoMaticService.java
View file @
67a589f4
...
@@ -37,7 +37,14 @@ public interface AutoMaticService {
...
@@ -37,7 +37,14 @@ public interface AutoMaticService {
* @param project 项目
* @param project 项目
* @return 模板集
* @return 模板集
*/
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
);
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLive
(
String
project
);
/**
* 获取项目文本模板
* @param project 项目
* @return 模板集
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLost
(
String
project
);
/**
/**
* 根据模板标题获取数据(仅最新100条)
* 根据模板标题获取数据(仅最新100条)
...
...
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/dubbo/service/impl/AutoMaticServiceImpl.java
View file @
67a589f4
...
@@ -67,8 +67,13 @@ public class AutoMaticServiceImpl implements AutoMaticService {
...
@@ -67,8 +67,13 @@ public class AutoMaticServiceImpl implements AutoMaticService {
}
}
@Override
@Override
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
)
{
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLive
(
String
project
)
{
return
templateTitleService
.
getTemplateTitleByProject
(
project
);
return
templateTitleService
.
getTemplateTitleByProjectLive
(
project
);
}
@Override
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectByLost
(
String
project
)
{
return
templateTitleService
.
getTemplateTitleByProjectLost
(
project
);
}
}
@Override
@Override
...
...
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/mission/ScheduledMission.java
View file @
67a589f4
...
@@ -65,7 +65,7 @@ public class ScheduledMission {
...
@@ -65,7 +65,7 @@ public class ScheduledMission {
for
(
String
project
:
asyncTask
.
findAllGroup
())
{
for
(
String
project
:
asyncTask
.
findAllGroup
())
{
//模板聚合任务
//模板聚合任务
putTask
(
project
,
startTime
,
endTime
,
true
);
putTask
(
project
,
startTime
,
endTime
,
true
);
putTaskBy
(
project
);
putTaskBy
Reset
(
project
);
}
}
// 模板记录清除任务
// 模板记录清除任务
putTaskByRecord
();
putTaskByRecord
();
...
@@ -87,13 +87,20 @@ public class ScheduledMission {
...
@@ -87,13 +87,20 @@ public class ScheduledMission {
TaskManager
.
getInstance
().
putTask
(
autoTask
);
TaskManager
.
getInstance
().
putTask
(
autoTask
);
}
}
private
void
putTaskBy
(
String
group
)
{
private
void
putTaskBy
Reset
(
String
group
)
{
Map
<
String
,
TemplateTitleVo
>
project
=
templateTitleService
.
getTemplateTitleByProject
(
group
);
Map
<
String
,
TemplateTitleVo
>
project
=
templateTitleService
.
getTemplateTitleByProject
Lost
(
group
);
for
(
Map
.
Entry
<
String
,
TemplateTitleVo
>
entry
:
project
.
entrySet
())
{
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
autoTask
=
new
AutoTask
(
TaskType
.
TEMPLATE_CLEAR_RETRY
.
getType
(),
group
);
autoTask
.
getParamSource
().
put
(
GenericAttribute
.
TEMPLATE_TITLE
,
entry
.
getKey
());
autoTask
.
getParamSource
().
put
(
GenericAttribute
.
TEMPLATE_TITLE
,
entry
.
getKey
());
TaskManager
.
getInstance
().
putTask
(
autoTask
);
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 @
67a589f4
...
@@ -8,11 +8,17 @@ import java.util.Map;
...
@@ -8,11 +8,17 @@ import java.util.Map;
public
interface
TemplateTitleService
{
public
interface
TemplateTitleService
{
/**
/**
* 获取项目文本模板
* 获取
有效的
项目文本模板
* @param project 项目
* @param project 项目
* @return 模板集
* @return 模板集
*/
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
);
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectLive
(
String
project
);
/**
* 回去重置的项目文本模板
* @return 模板集
*/
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectLost
(
String
project
);
/**
/**
* 根据模板标题获取数据(仅最新100条)
* 根据模板标题获取数据(仅最新100条)
...
...
middleware-automatic-center-server/src/main/java/com/zhiwei/middleware/automatic/server/service/impl/TemplateTitleServiceImpl.java
View file @
67a589f4
...
@@ -36,22 +36,19 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
...
@@ -36,22 +36,19 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
}
}
@Override
@Override
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
)
{
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectLive
(
String
project
)
{
Map
<
String
,
String
>
mapValue
=
redissonUtil
.
getMapValue
(
Tools
.
assembleKey
(
GenericAttribute
.
REDIS_MAP_KEY
,
project
));
return
getTemplateTitleByProject
(
GenericAttribute
.
REDIS_MAP_KEY
,
project
);
if
(
Tools
.
isEmpty
(
mapValue
))
{
}
return
new
HashMap
<>();
}
@Override
Map
<
String
,
TemplateTitleVo
>
res
=
Tools
.
restoreTMap
(
mapValue
,
TemplateTitleVo
.
class
);
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectLost
(
String
project
)
{
for
(
Map
.
Entry
<
String
,
TemplateTitleVo
>
entry
:
res
.
entrySet
())
{
return
getTemplateTitleByProject
(
GenericAttribute
.
REDIS_MAP_LOSE_KEY
,
project
);
setMarkCount
(
entry
.
getKey
(),
entry
.
getValue
());
}
return
res
;
}
}
@Override
@Override
public
List
<
String
>
getMupdateByTemplateTitle
(
String
group
,
String
templateTitle
)
{
public
List
<
String
>
getMupdateByTemplateTitle
(
String
group
,
String
templateTitle
)
{
try
{
try
{
TemplateTitleVo
templateTitleVo
=
getTemplateTitleByProject
(
group
).
get
(
templateTitle
);
TemplateTitleVo
templateTitleVo
=
getTemplateTitleByProject
Live
(
group
).
get
(
templateTitle
);
if
(
null
==
templateTitleVo
||
TemplateStatus
.
已重置
==
templateTitleVo
.
getStatus
())
{
if
(
null
==
templateTitleVo
||
TemplateStatus
.
已重置
==
templateTitleVo
.
getStatus
())
{
return
null
;
return
null
;
}
}
...
@@ -65,7 +62,7 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
...
@@ -65,7 +62,7 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
@Override
@Override
public
String
tryGetTemplateTitleByMupdate
(
String
group
,
String
title
,
String
mupdate
)
{
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
<>();
List
<
Map
<
String
,
Object
>>
filterTitles
=
new
ArrayList
<>();
for
(
String
templateTitle
:
templateTitleVos
.
keySet
())
{
for
(
String
templateTitle
:
templateTitleVos
.
keySet
())
{
if
(
TemplateStatus
.
已重置
==
templateTitleVos
.
get
(
templateTitle
).
getStatus
())
{
if
(
TemplateStatus
.
已重置
==
templateTitleVos
.
get
(
templateTitle
).
getStatus
())
{
...
@@ -101,7 +98,7 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
...
@@ -101,7 +98,7 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
res
.
put
(
"errorMessage"
,
"标题或项目为空"
);
res
.
put
(
"errorMessage"
,
"标题或项目为空"
);
return
res
;
return
res
;
}
}
Map
<
String
,
TemplateTitleVo
>
templateTitleVoMap
=
getTemplateTitleByProject
(
project
);
Map
<
String
,
TemplateTitleVo
>
templateTitleVoMap
=
getTemplateTitleByProject
Live
(
project
);
if
(
templateTitleVoMap
.
isEmpty
())
{
if
(
templateTitleVoMap
.
isEmpty
())
{
res
.
put
(
"errorMessage"
,
"该项目组未有聚合集"
);
res
.
put
(
"errorMessage"
,
"该项目组未有聚合集"
);
return
res
;
return
res
;
...
@@ -136,6 +133,15 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
...
@@ -136,6 +133,15 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
return
res
;
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
)
{
private
void
setMarkCount
(
String
group
,
TemplateTitleVo
vo
)
{
vo
.
setMarkSum
(
redissonUtil
.
getCount
(
Tools
.
assembleKey
(
COUNT_KEY
,
group
,
vo
.
getId
())));
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 @
67a589f4
...
@@ -2,19 +2,23 @@ package com.zhiwei.middleware.automatic.son.service;
...
@@ -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.TemplateRecord
;
import
com.zhiwei.middleware.automatic.server.pojo.TemplateTitleVo
;
import
com.zhiwei.middleware.automatic.server.pojo.TemplateTitleVo
;
import
com.zhiwei.middleware.automatic.son.dao.TemplateTempRecord
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
public
interface
TemplateTitleService
{
public
interface
TemplateTitleService
{
/**
/**
* 获取项目文本模板
* 获取
有效的
项目文本模板
* @param project 项目
* @param project 项目
* @return 模板集
* @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 {
...
@@ -61,4 +65,19 @@ public interface TemplateTitleService {
* @param fixTag 标签
* @param fixTag 标签
*/
*/
void
setTemplateValue
(
String
group
,
String
title
,
String
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 @
67a589f4
...
@@ -25,12 +25,10 @@ import org.elasticsearch.search.SearchHits;
...
@@ -25,12 +25,10 @@ import org.elasticsearch.search.SearchHits;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Service
@Service
...
@@ -66,13 +64,13 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
...
@@ -66,13 +64,13 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
@Override
@Override
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
(
String
project
)
{
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProject
Live
(
String
project
)
{
Map
<
String
,
String
>
mapValue
=
redissonUtil
.
getMapValue
(
Tools
.
assembleKey
(
GenericAttribute
.
REDIS_MAP_KEY
,
project
)
);
return
getTemplateTitleByProject
(
GenericAttribute
.
REDIS_MAP_KEY
,
project
);
// Map<String, String> mapValue = redissonUtil.getMapValue(Tools.assembleKey(getFileDayName(project)));
}
if
(
Tools
.
isEmpty
(
mapValue
))
{
return
new
HashMap
<>();
@Override
}
public
Map
<
String
,
TemplateTitleVo
>
getTemplateTitleByProjectLost
(
String
project
)
{
return
Tools
.
restoreTMap
(
mapValue
,
TemplateTitleVo
.
class
);
return
getTemplateTitleByProject
(
GenericAttribute
.
REDIS_MAP_LOSE_KEY
,
project
);
}
}
@Override
@Override
...
@@ -102,28 +100,17 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
...
@@ -102,28 +100,17 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
public
boolean
resetTemplate
(
String
group
,
String
title
)
{
public
boolean
resetTemplate
(
String
group
,
String
title
)
{
// 防止增加模板标题有带符号的问题
// 防止增加模板标题有带符号的问题
String
templateTitle
=
Tools
.
filterSymbol
(
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
)))
{
if
(
Objects
.
isNull
(
map
.
get
(
templateTitle
)))
{
return
false
;
return
false
;
}
}
TemplateTitleVo
templateTitleVo
=
map
.
get
(
templateTitle
);
TemplateTitleVo
templateTitleVo
=
map
.
get
(
templateTitle
);
// 只要在运行中的模板 才能重置
// 只要在运行中的模板 才能重置
if
(
Objects
.
isNull
(
templateTitleVo
.
getStatus
())
||
templateTitleVo
.
getStatus
().
name
().
equals
(
TemplateStatus
.
运行中
.
name
()))
{
if
(
Objects
.
isNull
(
templateTitleVo
.
getStatus
())
||
templateTitleVo
.
getStatus
().
name
().
equals
(
TemplateStatus
.
运行中
.
name
()))
{
templateTitleVo
.
setStatus
(
TemplateStatus
.
重置中
);
templateTitleVo
.
setStatus
(
TemplateStatus
.
已重置
);
setTemplateValue
(
group
,
templateTitle
,
templateTitleVo
);
setTemplateValue
(
group
,
templateTitle
,
templateTitleVo
);
// 修改模板的标注信息
redissonUtil
.
setMapValue
(
Tools
.
assembleKey
(
GenericAttribute
.
REDIS_MAP_LOSE_KEY
,
group
),
templateTitle
,
JSONObject
.
toJSONString
(
templateTitleVo
));
executor
.
execute
(()
->
{
deleteTemplate
(
group
,
title
);
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
);
}
});
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -139,6 +126,59 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
...
@@ -139,6 +126,59 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
setTemplateValue
(
group
,
title
,
null
,
fixTag
);
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
)
{
private
void
setTemplateValue
(
String
group
,
String
title
,
TemplateTitleVo
templateTitleVo
,
String
fixTag
)
{
String
lockKey
=
Tools
.
assembleKey
(
GenericAttribute
.
LOCK
,
title
);
String
lockKey
=
Tools
.
assembleKey
(
GenericAttribute
.
LOCK
,
title
);
try
{
try
{
...
@@ -170,38 +210,6 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
...
@@ -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数据
* 根据特征值查询es数据
* @param mupdate 特征值
* @param mupdate 特征值
* @return es返回值
* @return es返回值
...
...
middleware-automatic-center-son/src/main/java/com/zhiwei/middleware/automatic/son/task/service/TaskServiceCommon.java
View file @
67a589f4
...
@@ -158,7 +158,7 @@ public class TaskServiceCommon extends BaseTaskTypePair<TaskServiceCommon.TaskCo
...
@@ -158,7 +158,7 @@ public class TaskServiceCommon extends BaseTaskTypePair<TaskServiceCommon.TaskCo
private
void
projectAutoMark
(
Map
<
String
,
List
<
MarkInfo
>>
groupMap
)
{
private
void
projectAutoMark
(
Map
<
String
,
List
<
MarkInfo
>>
groupMap
)
{
for
(
Map
.
Entry
<
String
,
List
<
MarkInfo
>>
entry
:
groupMap
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
List
<
MarkInfo
>>
entry
:
groupMap
.
entrySet
())
{
try
{
try
{
Map
<
String
,
TemplateTitleVo
>
template
=
templateTitleService
.
getTemplateTitleByProject
(
entry
.
getKey
());
Map
<
String
,
TemplateTitleVo
>
template
=
templateTitleService
.
getTemplateTitleByProject
Live
(
entry
.
getKey
());
clearTemplateDaySum
(
template
);
clearTemplateDaySum
(
template
);
asyncTitleMark
(
entry
.
getKey
(),
entry
.
getValue
(),
template
);
asyncTitleMark
(
entry
.
getKey
(),
entry
.
getValue
(),
template
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
middleware-automatic-center-son/src/main/java/com/zhiwei/middleware/automatic/son/task/service/TaskServiceTemplate.java
View file @
67a589f4
...
@@ -68,8 +68,9 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
...
@@ -68,8 +68,9 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
taskCache
(
TaskType
.
TEMPLATE
,
this
::
templateRun
);
taskCache
(
TaskType
.
TEMPLATE
,
this
::
templateRun
);
taskCache
(
TaskType
.
TEMPLATE_MODIFY
,
this
::
templateModify
);
taskCache
(
TaskType
.
TEMPLATE_MODIFY
,
this
::
templateModify
);
taskCache
(
TaskType
.
TEMPLATE_RESET
,
this
::
templateReset
);
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_RECORD
,
this
::
templateRecordClean
);
taskCache
(
TaskType
.
TEMPLATE_LOST_RESET
,
this
::
templateLost
);
}
}
@Override
@Override
...
@@ -83,7 +84,7 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
...
@@ -83,7 +84,7 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
long
now
=
System
.
currentTimeMillis
();
long
now
=
System
.
currentTimeMillis
();
TaskTemplateFunctional
pair
=
getPairValue
(
autoTask
.
getType
());
TaskTemplateFunctional
pair
=
getPairValue
(
autoTask
.
getType
());
pair
.
template
(
autoTask
);
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
)),
Tools
.
TIME_FORMAT
.
format
(
autoTask
.
getParamSource
().
getLong
(
GenericAttribute
.
START_PARAM
)),
System
.
currentTimeMillis
()
-
now
);
Tools
.
TIME_FORMAT
.
format
(
autoTask
.
getParamSource
().
getLong
(
GenericAttribute
.
START_PARAM
)),
System
.
currentTimeMillis
()
-
now
);
},
autoTask
));
},
autoTask
));
...
@@ -94,6 +95,10 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
...
@@ -94,6 +95,10 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
log
.
info
(
executorLog
,
"模板聚合"
,
executor
.
getActiveCount
(),
executor
.
getQueue
().
size
());
log
.
info
(
executorLog
,
"模板聚合"
,
executor
.
getActiveCount
(),
executor
.
getQueue
().
size
());
}
}
/**
* 模板清除任务
* @param autoTask 参数
*/
private
void
templateRecordClean
(
AutoTask
autoTask
)
{
private
void
templateRecordClean
(
AutoTask
autoTask
)
{
templateRecordDao
.
removeTemplateRecord
(
new
Query
(
Criteria
.
where
(
"createAt"
).
lt
(
autoTask
.
getParamSource
().
getLong
(
GenericAttribute
.
END_PARAM
))));
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
...
@@ -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
...
@@ -176,7 +188,7 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
//聚合模板
//聚合模板
Map
<
String
,
TemplateTitleVo
>
aggregation
=
aggregation
(
transferMark
(
sourceList
));
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
->
{
.
filter
(
e
->
{
String
title
=
e
.
getKey
();
String
title
=
e
.
getKey
();
TemplateTitleVo
templateTitleVo
=
e
.
getValue
();
TemplateTitleVo
templateTitleVo
=
e
.
getValue
();
...
@@ -187,6 +199,7 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
...
@@ -187,6 +199,7 @@ public class TaskServiceTemplate extends BaseTaskTypePair<TaskServiceTemplate.Ta
// 移除7天有效期外的数据
// 移除7天有效期外的数据
if
(
System
.
currentTimeMillis
()
-
updateTime
>
ONE_DAY
*
7
*
1000
)
{
if
(
System
.
currentTimeMillis
()
-
updateTime
>
ONE_DAY
*
7
*
1000
)
{
log
.
info
(
"{}-移除过期模板标题:{},最后更新时间:{}"
,
group
,
title
,
updateTime
);
log
.
info
(
"{}-移除过期模板标题:{},最后更新时间:{}"
,
group
,
title
,
updateTime
);
templateTitleService
.
deleteTemplate
(
group
,
title
);
return
false
;
return
false
;
}
else
if
(
e
.
getValue
().
getStatus
()
==
TemplateStatus
.
已重置
)
{
}
else
if
(
e
.
getValue
().
getStatus
()
==
TemplateStatus
.
已重置
)
{
log
.
info
(
"已重置的模板从内存中删除,模板title:{}"
,
e
.
getKey
());
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