Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
bigdatainterservice
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
曹鹏
bigdatainterservice
Commits
fb19cf96
Commit
fb19cf96
authored
Mar 05, 2019
by
liuyongshuai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.去除区域碰撞标识号的重复数据,优化效率,这样入库标识号就会少很多,调取关联关系也会节省很多时间;
2.优化第二步调取关联信息定时线程,添加根据taskCaseId过滤条件
parent
a000c746
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
14 deletions
+34
-14
src/main/java/com/founder/interservice/regionalanalysis/service/impl/ScheduledService.java
+34
-14
No files found.
src/main/java/com/founder/interservice/regionalanalysis/service/impl/ScheduledService.java
View file @
fb19cf96
...
...
@@ -105,7 +105,7 @@ public class ScheduledService {
* 2.开启新线程调取标识号的关联数据
* 3.调取标识号关联数据完成,然后更新任务
*/
@Scheduled
(
initialDelay
=
120000
,
fixedDelay
=
18
0000
)
//项目启动后延迟两分钟执行,每次执行完后两分钟后再次执行
@Scheduled
(
initialDelay
=
120000
,
fixedDelay
=
6
0000
)
//项目启动后延迟两分钟执行,每次执行完后两分钟后再次执行
public
void
queryFinishTaskResult
(){
System
.
out
.
println
(
"=============开始执行调取关联数据定时任务================"
);
System
.
out
.
println
(
"线程名称========== "
+
Thread
.
currentThread
().
getName
());
...
...
@@ -114,26 +114,21 @@ public class ScheduledService {
List
<
RegionalTask
>
taskList
=
regionalTaskRepository
.
findAll
(
new
Specification
<
RegionalTask
>()
{
@Override
public
Predicate
toPredicate
(
Root
<
RegionalTask
>
root
,
CriteriaQuery
<?>
criteriaQuery
,
CriteriaBuilder
criteriaBuilder
)
{
List
<
Predicate
>
list
=
new
ArrayList
<>();
Expression
<
String
>
exp
=
root
.<
String
>
get
(
"state"
);
list
.
add
(
exp
.
in
(
Arrays
.
asList
(
"FINISHED"
)));
Predicate
[]
p
=
new
Predicate
[
list
.
size
()];
return
criteriaBuilder
.
and
(
list
.
toArray
(
p
));
Predicate
p1
=
criteriaBuilder
.
like
(
root
.
get
(
"taskCaseId"
).
as
(
String
.
class
),
"A%"
);
Predicate
p2
=
criteriaBuilder
.
equal
(
root
.
get
(
"state"
).
as
(
String
.
class
),
"FINISHED"
);
criteriaQuery
.
where
(
criteriaBuilder
.
and
(
p1
,
p2
));
return
criteriaQuery
.
getRestriction
();
}
});
System
.
out
.
println
(
"开始查询ddddd============================================================"
);
System
.
out
.
println
(
taskList
);
if
(
taskList
!=
null
&&
!
taskList
.
isEmpty
()){
for
(
RegionalTask
task:
taskList
)
{
List
<
RegionalTaskResult
>
taskResults
=
taskResultRepository
.
findAllByTaskId
(
task
.
getTaskId
());
//保存区域碰撞结果翻译后的数据
getAndSaveRydetail
(
taskResults
);
//查询状态,并更新状态
Map
<
String
,
String
>
taskMap
=
queryTaskStates
(
task
.
getTaskId
());
String
progress
=
taskMap
.
get
(
"progress"
);
String
state
=
taskMap
.
get
(
"state"
);
//判断当前任务状态和查询任务状态是否一致,如果不一致 进行更新
if
(!
state
.
equals
(
task
.
getState
())){
updateTaskStates
(
task
.
getTaskId
(),
progress
,
state
);
}
updateTaskStates
(
task
.
getTaskId
(),
"2"
,
"END"
);
}
}
}
catch
(
Exception
e
){
...
...
@@ -141,6 +136,13 @@ public class ScheduledService {
}
}
/**
* 通过区域碰撞的结果 使用第四个接口调取关联数据
*/
...
...
@@ -233,6 +235,7 @@ public class ScheduledService {
JSONArray
jsonArray
=
o
.
getJSONArray
(
"results"
);
if
(
jsonArray
!=
null
&&
jsonArray
.
size
()
>
0
){
List
<
RegionalTaskResult
>
taskResults
=
jsonArray
.
toJavaList
(
RegionalTaskResult
.
class
);
taskResults
=
removeDuplicate
(
taskResults
);
if
(
taskResults
!=
null
&&
!
taskResults
.
isEmpty
()){
Iterator
<
RegionalTaskResult
>
resultIterator
=
taskResults
.
iterator
();
while
(
resultIterator
.
hasNext
()){
...
...
@@ -280,6 +283,23 @@ public class ScheduledService {
return
map
;
}
/**
* 去除重复数据
* @param list
* @return
*/
public
static
List
<
RegionalTaskResult
>
removeDuplicate
(
List
<
RegionalTaskResult
>
list
)
{
for
(
int
i
=
0
;
i
<
list
.
size
()
-
1
;
i
++
)
{
for
(
int
j
=
list
.
size
()
-
1
;
j
>
i
;
j
--
)
{
if
(
list
.
get
(
j
).
getObjectValue
().
equals
(
list
.
get
(
i
).
getObjectValue
())&&
list
.
get
(
j
).
getObjectType
().
equals
(
list
.
get
(
i
).
getObjectType
()))
{
list
.
remove
(
j
);
}
}
}
return
list
;
}
/**
* 修改任务状态
* @param taskId
...
...
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