Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
datamanage
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
shenjinzhu
datamanage
Commits
19a369e9
Commit
19a369e9
authored
Jan 10, 2018
by
shenjinzhu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
数据搜索优化
parent
46071e6c
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
63 additions
and
51 deletions
+63
-51
src/main/java/com/zhiwei/manage/dao/DataDao.java
+3
-3
src/main/java/com/zhiwei/manage/dao/DataDaoImpl.java
+6
-6
src/main/java/com/zhiwei/manage/handle/Task.java
+35
-30
src/main/java/com/zhiwei/manage/service/DataService.java
+3
-3
src/main/java/com/zhiwei/manage/service/DataServiceImpl.java
+3
-3
src/main/java/com/zhiwei/manage/servlet/DataController.java
+13
-6
No files found.
src/main/java/com/zhiwei/manage/dao/DataDao.java
View file @
19a369e9
...
...
@@ -20,8 +20,8 @@ public interface DataDao {
public
List
<
Data
>
findByMethod
(
Date
startTime
,
Date
endTime
,
String
method
,
Object
value
);
public
List
<
EasyNews
>
findBySourceFromLibrary
(
Date
startTime
,
Date
endTime
,
String
source
);
public
List
<
EasyNews
>
findBySpId
(
Date
startTime
,
Date
endTime
,
String
syId
);
public
int
findBySourceFromLibrary
(
Date
startTime
,
Date
endTime
,
String
source
);
public
int
findBySpId
(
Date
startTime
,
Date
endTime
,
String
syId
);
/**
* 根据数据来源来搜索数据
* @param startTime
...
...
@@ -33,7 +33,7 @@ public interface DataDao {
public
List
<
EasyNews
>
findByAccurateType
(
Date
startTime
,
Date
endTime
,
String
type
);
public
int
findByAccurateType
(
Date
startTime
,
Date
endTime
,
String
type
);
/**
* 根据可视化模板的id去搜索数据
* @param startTime
...
...
src/main/java/com/zhiwei/manage/dao/DataDaoImpl.java
View file @
19a369e9
...
...
@@ -240,12 +240,12 @@ public class DataDaoImpl implements DataDao {
}
@Override
public
List
<
EasyNews
>
findBySourceFromLibrary
(
Date
startTime
,
Date
endTime
,
String
source
)
{
public
int
findBySourceFromLibrary
(
Date
startTime
,
Date
endTime
,
String
source
)
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
startTime
);
int
year
=
c
.
get
(
Calendar
.
YEAR
);
int
month
=
c
.
get
(
Calendar
.
MONTH
)
+
1
;
return
mongo2
.
find
(
Query
.
query
(
Criteria
.
where
(
"time"
).
gte
(
startTime
).
lt
(
endTime
).
and
(
"type"
).
is
(
source
)),
return
(
int
)
mongo2
.
count
(
Query
.
query
(
Criteria
.
where
(
"time"
).
gte
(
startTime
).
lt
(
endTime
).
and
(
"type"
).
is
(
source
)),
EasyNews
.
class
,
"net_media_"
+
year
+
(
month
>
9
?
""
+
month:
"0"
+
month
));
}
...
...
@@ -277,12 +277,12 @@ public class DataDaoImpl implements DataDao {
}
@Override
public
List
<
EasyNews
>
findByAccurateType
(
Date
startTime
,
Date
endTime
,
String
type
)
{
public
int
findByAccurateType
(
Date
startTime
,
Date
endTime
,
String
type
)
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
startTime
);
int
year
=
c
.
get
(
Calendar
.
YEAR
);
int
month
=
c
.
get
(
Calendar
.
MONTH
)
+
1
;
return
mongo2
.
find
(
Query
.
query
(
Criteria
.
where
(
"time"
).
gte
(
startTime
).
lt
(
endTime
).
and
(
"type"
).
is
(
type
)),
return
(
int
)
mongo2
.
count
(
Query
.
query
(
Criteria
.
where
(
"time"
).
gte
(
startTime
).
lt
(
endTime
).
and
(
"type"
).
is
(
type
)),
EasyNews
.
class
,
"net_media_"
+
year
+
(
month
>
9
?
""
+
month:
"0"
+
month
));
}
...
...
@@ -353,12 +353,12 @@ public class DataDaoImpl implements DataDao {
}
@Override
public
List
<
EasyNews
>
findBySpId
(
Date
startTime
,
Date
endTime
,
String
syId
)
{
public
int
findBySpId
(
Date
startTime
,
Date
endTime
,
String
syId
)
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
startTime
);
int
year
=
c
.
get
(
Calendar
.
YEAR
);
int
month
=
c
.
get
(
Calendar
.
MONTH
)
+
1
;
return
mongo2
.
find
(
Query
.
query
(
Criteria
.
where
(
"time"
).
gte
(
startTime
).
lt
(
endTime
).
and
(
"spyderInfoId"
).
is
(
syId
)),
return
(
int
)
mongo2
.
count
(
Query
.
query
(
Criteria
.
where
(
"time"
).
gte
(
startTime
).
lt
(
endTime
).
and
(
"spyderInfoId"
).
is
(
syId
)),
EasyNews
.
class
,
"net_media_"
+
year
+
(
month
>
9
?
""
+
month:
"0"
+
month
));
}
...
...
src/main/java/com/zhiwei/manage/handle/Task.java
View file @
19a369e9
...
...
@@ -35,12 +35,11 @@ public class Task implements Runnable {
@Override
public
void
run
()
{
System
.
out
.
println
(
"开始做检测"
);
MessageService
messageService
=
BeanFactory
.
getBean
(
MessageService
.
class
);
NewsService
newsService
=
BeanFactory
.
getBean
(
NewsService
.
class
);
// 连通性测试
if
(
ping
!=
null
)
{
if
(
MainThread
.
mainMap
.
get
(
ping
.
getTemplateId
())
!=
null
)
{
URL
url
;
try
{
url
=
new
URL
(
ping
.
getPingUrlOne
());
...
...
@@ -72,7 +71,7 @@ public class Task implements Runnable {
msg
.
setPt
(
ping
.
getPt
());
messageService
.
insert
(
msg
);
}
if
(
null
!=
ping
.
getPingUrlTwo
()
&&
!
ping
.
getPingUrlTwo
().
equals
(
""
))
if
(
null
!=
ping
.
getPingUrlTwo
()
&&
!
ping
.
getPingUrlTwo
().
equals
(
""
))
try
{
url
=
new
URL
(
ping
.
getPingUrlTwo
());
HttpURLConnection
conn
=
(
HttpURLConnection
)
url
.
openConnection
();
...
...
@@ -105,15 +104,18 @@ public class Task implements Runnable {
messageService
.
insert
(
msg
);
}
}
}
if
(
field
!=
null
)
{
List
<
Map
<
String
,
Object
>>
list
=
newsService
.
findNews
(
field
.
getHost
(),
field
.
getPort
(),
field
.
getdBName
(),
field
.
getCollection
(),
field
.
getTestCount
(),
field
.
getSpyderInfoId
(),
field
.
getPt
());
System
.
out
.
println
(
"field检测数据长度"
+
list
.
size
());
if
(
list
.
size
()<
field
.
getTestCount
()){
if
(
MainThread
.
mainMap
.
get
(
field
.
getTemplateId
())
!=
null
)
{
List
<
Map
<
String
,
Object
>>
list
=
newsService
.
findNews
(
field
.
getHost
(),
field
.
getPort
(),
field
.
getdBName
(),
field
.
getCollection
(),
field
.
getTestCount
(),
field
.
getSpyderInfoId
(),
field
.
getPt
());
System
.
out
.
println
(
"field检测数据长度"
+
list
.
size
());
if
(
list
.
size
()
<
field
.
getTestCount
())
{
Template
tp
=
MainThread
.
mainMap
.
get
(
field
.
getTemplateId
());
Message
msg
=
new
Message
();
msg
.
setCreateDate
(
new
Date
());
msg
.
setErrorMsg
(
"字段检测发现库内的数据小于预设检测数量:"
+
field
.
getTestCount
()+
"条,实际数据量为"
+
list
.
size
());
msg
.
setErrorMsg
(
"字段检测发现库内的数据小于预设检测数量:"
+
field
.
getTestCount
()
+
"条,实际数据量为"
+
list
.
size
());
msg
.
setHandle
(
false
);
msg
.
setPt
(
field
.
getPt
());
msg
.
setTemplateCreator
(
tp
.
getCreator
());
...
...
@@ -125,22 +127,22 @@ public class Task implements Runnable {
String
[]
fields
=
field
.
getField
().
split
(
","
);
int
count
=
list
.
size
();
for
(
String
fid
:
fields
)
{
String
str
=
""
;
String
str
=
""
;
int
num
=
count
;
for
(
Map
<
String
,
Object
>
map
:
list
)
{
if
(
map
.
get
(
fid
)
==
null
)
{
num
--;
str
=
String
.
valueOf
(
map
.
get
(
"_id"
));
}
else
if
(
String
.
valueOf
(
map
.
get
(
fid
)).
length
()<
1
)
{
str
=
String
.
valueOf
(
map
.
get
(
"_id"
));
}
else
if
(
String
.
valueOf
(
map
.
get
(
fid
)).
length
()
<
1
)
{
num
--;
str
=
String
.
valueOf
(
map
.
get
(
"_id"
));
str
=
String
.
valueOf
(
map
.
get
(
"_id"
));
}
}
if
(
num
/
1.0
/
count
<
field
.
getFieldIntegrityRate
()/
100.0
)
{
if
(
num
/
1.0
/
count
<
field
.
getFieldIntegrityRate
()
/
100.0
)
{
Template
tp
=
MainThread
.
mainMap
.
get
(
field
.
getTemplateId
());
Message
msg
=
new
Message
();
msg
.
setCreateDate
(
new
Date
());
msg
.
setErrorMsg
(
fid
+
"字段存在缺失,完整率"
+
num
/
1.0
/
count
+
"其中一条:"
+
str
);
msg
.
setErrorMsg
(
fid
+
"字段存在缺失,完整率"
+
num
/
1.0
/
count
+
"其中一条:"
+
str
);
msg
.
setHandle
(
false
);
msg
.
setPt
(
field
.
getPt
());
msg
.
setErrorType
(
"field"
);
...
...
@@ -151,16 +153,19 @@ public class Task implements Runnable {
}
}
}
}
if
(
delayed
!=
null
)
{
List
<
Map
<
String
,
Object
>>
list
=
newsService
.
findNews
(
delayed
.
getHost
(),
delayed
.
getPort
(),
delayed
.
getdBName
(),
delayed
.
getCollection
(),
delayed
.
getTestCount
(),
delayed
.
getSpyderInfoId
(),
delayed
.
getPt
());
System
.
out
.
println
(
"delay检测数据长度"
+
list
.
size
());
if
(
MainThread
.
mainMap
.
get
(
delayed
.
getTemplateId
())
!=
null
)
{
List
<
Map
<
String
,
Object
>>
list
=
newsService
.
findNews
(
delayed
.
getHost
(),
delayed
.
getPort
(),
delayed
.
getdBName
(),
delayed
.
getCollection
(),
delayed
.
getTestCount
(),
delayed
.
getSpyderInfoId
(),
delayed
.
getPt
());
System
.
out
.
println
(
"delay检测数据长度"
+
list
.
size
());
long
sum
=
0
;
if
(
list
.
size
()<
delayed
.
getTestCount
())
{
if
(
list
.
size
()
<
delayed
.
getTestCount
())
{
Template
tp
=
MainThread
.
mainMap
.
get
(
delayed
.
getTemplateId
());
Message
msg
=
new
Message
();
msg
.
setCreateDate
(
new
Date
());
msg
.
setErrorMsg
(
"延时检测发现库内的数据小于预设检测数量:"
+
delayed
.
getTestCount
()+
"条,实际数据量为"
+
list
.
size
());
msg
.
setErrorMsg
(
"延时检测发现库内的数据小于预设检测数量:"
+
delayed
.
getTestCount
()
+
"条,实际数据量为"
+
list
.
size
());
msg
.
setHandle
(
false
);
msg
.
setPt
(
delayed
.
getPt
());
msg
.
setErrorType
(
"delayed"
);
...
...
@@ -169,8 +174,8 @@ public class Task implements Runnable {
msg
.
setTempName
(
delayed
.
getTempName
());
messageService
.
insert
(
msg
);
}
double
delay
=
0
;
List
<
Double
>
dNum
=
new
ArrayList
<
Double
>();
double
delay
=
0
;
List
<
Double
>
dNum
=
new
ArrayList
<
Double
>();
for
(
Map
<
String
,
Object
>
map
:
list
)
{
Date
time
=
null
;
Date
savetime
=
null
;
...
...
@@ -178,13 +183,13 @@ public class Task implements Runnable {
time
=
(
Date
)
map
.
get
(
delayed
.
getTime
());
}
if
(
map
.
get
(
delayed
.
getSavetime
())
!=
null
)
{
Date
d
=
new
Date
((
Long
)
map
.
get
(
delayed
.
getSavetime
()));
Date
d
=
new
Date
((
Long
)
map
.
get
(
delayed
.
getSavetime
()));
savetime
=
d
;
}
if
(
time
!=
null
&&
savetime
!=
null
)
{
delay
=
savetime
.
getTime
()
-
time
.
getTime
();
delay
=
savetime
.
getTime
()
-
time
.
getTime
();
dNum
.
add
(
delay
);
sum
+=
delay
;
sum
+=
delay
;
}
else
{
Template
tp
=
MainThread
.
mainMap
.
get
(
delayed
.
getTemplateId
());
Message
msg
=
new
Message
();
...
...
@@ -201,16 +206,16 @@ public class Task implements Runnable {
}
Collections
.
sort
(
dNum
);
System
.
out
.
println
(
sum
);
int
cutSize
=(
int
)
(
dNum
.
size
()*
0.8
/
1
);
for
(
int
i
=
cutSize
;
i
<
dNum
.
size
();
i
++)
{
sum
-=
dNum
.
get
(
i
);
int
cutSize
=
(
int
)
(
dNum
.
size
()
*
0.8
/
1
);
for
(
int
i
=
cutSize
;
i
<
dNum
.
size
();
i
++)
{
sum
-=
dNum
.
get
(
i
);
}
System
.
out
.
println
(
sum
);
if
(
sum
/
1.0
/
1000
/
60
/
cutSize
>
delayed
.
getNewsDelayed
())
{
if
(
sum
/
1.0
/
1000
/
60
/
cutSize
>
delayed
.
getNewsDelayed
())
{
Template
tp
=
MainThread
.
mainMap
.
get
(
delayed
.
getTemplateId
());
Message
msg
=
new
Message
();
msg
.
setCreateDate
(
new
Date
());
msg
.
setErrorMsg
(
"延时过高,延时检测为"
+
sum
/
1.0
/
1000
/
60
/
cutSize
+
"分"
);
msg
.
setErrorMsg
(
"延时过高,延时检测为"
+
sum
/
1.0
/
1000
/
60
/
cutSize
+
"分"
);
msg
.
setHandle
(
false
);
msg
.
setErrorType
(
"delayed"
);
msg
.
setTemplateCreator
(
tp
.
getCreator
());
...
...
@@ -221,5 +226,5 @@ public class Task implements Runnable {
}
}
}
}
}
src/main/java/com/zhiwei/manage/service/DataService.java
View file @
19a369e9
...
...
@@ -18,15 +18,15 @@ public interface DataService {
public
List
<
Data
>
findByMethod
(
Date
startTime
,
Date
endTime
,
String
method
,
Object
value
);
public
List
<
EasyNews
>
findBySourceFromLibrary
(
Date
startTime
,
Date
endTime
,
String
source
);
public
int
findBySourceFromLibrary
(
Date
startTime
,
Date
endTime
,
String
source
);
public
List
<
EasyNews
>
findByAccurateSource
(
String
startTime
,
String
endTime
,
String
source
);
public
List
<
EasyNews
>
findByAccurateSpId
(
String
startTime
,
String
endTime
,
String
SpId
);
public
List
<
EasyNews
>
findByAccurateType
(
Date
startTime
,
Date
endTime
,
String
type
);
public
int
findByAccurateType
(
Date
startTime
,
Date
endTime
,
String
type
);
public
List
<
EasyNews
>
findByTempName
(
Date
startTime
,
Date
endTime
,
String
tempName
);
public
int
findByTempName
(
Date
startTime
,
Date
endTime
,
String
tempName
);
public
long
findWeiboCount
(
Date
start
,
Date
end
);
...
...
src/main/java/com/zhiwei/manage/service/DataServiceImpl.java
View file @
19a369e9
...
...
@@ -59,7 +59,7 @@ public class DataServiceImpl implements DataService{
}
@Override
public
List
<
EasyNews
>
findBySourceFromLibrary
(
Date
startTime
,
Date
endTime
,
String
source
)
{
public
int
findBySourceFromLibrary
(
Date
startTime
,
Date
endTime
,
String
source
)
{
return
dataDao
.
findBySourceFromLibrary
(
startTime
,
endTime
,
source
);
}
...
...
@@ -74,7 +74,7 @@ public class DataServiceImpl implements DataService{
}
@Override
public
List
<
EasyNews
>
findByAccurateType
(
Date
startTime
,
Date
endTime
,
String
type
)
{
public
int
findByAccurateType
(
Date
startTime
,
Date
endTime
,
String
type
)
{
return
dataDao
.
findByAccurateType
(
startTime
,
endTime
,
type
);
}
...
...
@@ -94,7 +94,7 @@ public class DataServiceImpl implements DataService{
}
@Override
public
List
<
EasyNews
>
findByTempName
(
Date
startTime
,
Date
endTime
,
String
tempName
)
{
public
int
findByTempName
(
Date
startTime
,
Date
endTime
,
String
tempName
)
{
String
spId
=
crd
.
getSpIdByConfigName
(
tempName
);
return
dataDao
.
findBySpId
(
startTime
,
endTime
,
spId
);
}
...
...
src/main/java/com/zhiwei/manage/servlet/DataController.java
View file @
19a369e9
...
...
@@ -89,25 +89,32 @@ public class DataController {
startd
.
setTimeInMillis
(
start
);
endTime
.
setTimeInMillis
(
start
);
}
Calendar
ds
=
Calendar
.
getInstance
();
ds
.
setTimeInMillis
(
end
);
System
.
out
.
println
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
startd
.
getTime
()));
System
.
out
.
println
(
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
format
(
ds
.
getTime
()));
String
source
=
""
;
List
<
Data
>
list
=
new
ArrayList
<
Data
>();
startd
.
add
(
Calendar
.
HOUR
,
-
8
);
while
(
endTime
.
getTime
InMillis
()
<
end
)
{
while
(
endTime
.
getTime
().
before
(
ds
.
getTime
())
)
{
endTime
.
add
(
Calendar
.
HOUR
,
1
);
List
<
EasyNews
>
newsList
=
new
ArrayList
<>()
;
int
count
=
0
;
if
(
method
.
equals
(
"type"
)){
source
=(
String
)
map
.
get
(
"type"
);
newsLis
t
=
dataService
.
findByAccurateType
(
startd
.
getTime
(),
endTime
.
getTime
(),
source
);
coun
t
=
dataService
.
findByAccurateType
(
startd
.
getTime
(),
endTime
.
getTime
(),
source
);
}
else
{
if
(
method
.
equals
(
"source"
))
{
source
=
(
String
)
map
.
get
(
"source"
);
newsLis
t
=
dataService
.
findBySourceFromLibrary
(
startd
.
getTime
(),
endTime
.
getTime
(),
source
);
coun
t
=
dataService
.
findBySourceFromLibrary
(
startd
.
getTime
(),
endTime
.
getTime
(),
source
);
}
else
{
source
=
(
String
)
map
.
get
(
"tempName"
);
newsLis
t
=
dataService
.
findByTempName
(
startd
.
getTime
(),
endTime
.
getTime
(),
source
);
coun
t
=
dataService
.
findByTempName
(
startd
.
getTime
(),
endTime
.
getTime
(),
source
);
}
}
Data
data
=
Change
.
changeNewsToDate
(
newsList
,
startd
.
getTime
());
Data
data
=
new
Data
();
data
.
setCount
(
count
);
data
.
setSource
(
source
);
data
.
setTime
(
startd
.
getTime
());
list
.
add
(
data
);
startd
.
add
(
Calendar
.
HOUR
,
1
);
}
...
...
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