Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
automatic-test
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
钟涨钱
automatic-test
Commits
77007f74
Commit
77007f74
authored
Sep 09, 2021
by
朽木不可雕也
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
记录测试信息的主数据库改为mysql
parent
bb50db18
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
368 additions
and
97 deletions
+368
-97
.gitignore
+4
-0
barrage-crawler-server/ddl/BarrageCollectionTestTask.sql
+23
-0
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/config/BaseConfig.java
+0
-12
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/createtasks/BiliBiliCreateTaskJob.java
+2
-2
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/createtasks/CreateTaskJob.java
+17
-12
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/createtasks/DouyuCreateTaskJob.java
+2
-2
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/createtasks/HuyaCreateTaskJob.java
+2
-2
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/entity/BarrageCollectionTestTask.java
+5
-14
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/entity/BarrageExportInfo.java
+33
-3
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/entity/ServerResponseMessage.java
+23
-0
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/exporttasks/BarrageExportTaskJob.java
+19
-4
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/exporttasks/BiliBiliExportTaskJob.java
+13
-13
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/exporttasks/DouyuExportTaskJob.java
+2
-2
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/exporttasks/HuyaExportTaskJob.java
+2
-2
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/mapper/BarrageCollectionTestTaskMapper.java
+18
-0
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/mapper/ServerResponseMessageMapper.java
+16
-0
barrage-crawler-server/src/main/resources/mappers/BarrageCollectionTestTaskMapper.xml
+19
-0
barrage-crawler-server/src/main/resources/mappers/ServerResponseMessageMapper.xml
+18
-0
barrage-crawler-server/src/test/java/com/zhiweidata/automatictest/barragecrawlerserver/exporttasks/BiliBiliExportTaskJobTest.java
+7
-3
public/pom.xml
+16
-4
public/src/main/java/com/zhiweidata/automatictest/publics/BeanContainer.java
+57
-22
public/src/main/java/com/zhiweidata/automatictest/publics/HikariDataSourceFactory.java
+52
-0
public/src/main/resources/mybatis.xml
+18
-0
No files found.
.gitignore
View file @
77007f74
...
@@ -5,3 +5,6 @@ target
...
@@ -5,3 +5,6 @@ target
*.iml
*.iml
*.classpath
*.classpath
*.log
*.log
*.xlsx
cache
venv
\ No newline at end of file
barrage-crawler-server/ddl/BarrageCollectionTestTask.sql
0 → 100644
View file @
77007f74
#
弹幕采集测试任务
CREATE
TABLE
barrage_collection_test_task
(
name
VARCHAR
(
255
)
NOT
NULL
PRIMARY
KEY
COMMENT
'任务名称,32位UUID'
,
url
VARCHAR
(
255
)
NOT
NULL
COMMENT
'直播间地址'
,
start_time
INT
NOT
NULL
COMMENT
'任务开始时间'
,
end_time
INT
NOT
NULL
COMMENT
'任务结束时间'
,
create_time
TIMESTAMP
(
3
)
DEFAULT
CURRENT_TIMESTAMP
(
3
)
COMMENT
'任务创建时间'
)
CHARSET
utf8mb4
COMMENT
'弹幕采集服务自动测试任务'
;
#
服务器响应信息
CREATE
TABLE
server_response_message
(
id
BIGINT
UNSIGNED
AUTO_INCREMENT
PRIMARY
KEY
,
barrage_collection_test_task_name
VARCHAR
(
255
)
NOT
NULL
COMMENT
'任务名称,32位UUD'
,
code
INT
NOT
NULL
COMMENT
'响应代码'
,
message
VARCHAR
(
255
)
NOT
NULL
COMMENT
'响应信息'
,
create_time
TIMESTAMP
(
3
)
DEFAULT
CURRENT_TIMESTAMP
(
3
),
FOREIGN
KEY
(
barrage_collection_test_task_name
)
REFERENCES
barrage_collection_test_task
(
name
)
ON
DELETE
CASCADE
ON
UPDATE
CASCADE
)
CHARSET
utf8mb4
COMMENT
'服务器响应信息'
;
\ No newline at end of file
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/config/BaseConfig.java
View file @
77007f74
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
;
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
;
import
com.mongodb.client.MongoCollection
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTask
;
import
java.io.File
;
import
java.io.File
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
static
com
.
zhiweidata
.
automatictest
.
publics
.
BeanContainer
.
MONGO_DATABASE
;
/**
/**
* 基本配置
* 基本配置
*
*
...
@@ -38,14 +34,6 @@ public class BaseConfig {
...
@@ -38,14 +34,6 @@ public class BaseConfig {
*/
*/
public
static
final
int
EXPORT_START_MAX_DELAY
=
7
;
public
static
final
int
EXPORT_START_MAX_DELAY
=
7
;
/**
/**
* 模块名称
*/
public
static
final
String
MODULE_NAME
=
"barrage_crawler_server"
;
/**
* 测试采集任务的信息集合
*/
public
static
final
MongoCollection
<
BarrageCollectionTask
>
MONGO_TASK_REQUEST_COLLECTION
=
MONGO_DATABASE
.
getCollection
(
MODULE_NAME
+
"_task_requests"
,
BarrageCollectionTask
.
class
);
/**
* 文件缓存文件夹
* 文件缓存文件夹
*/
*/
public
static
final
File
CACHE_DIR
=
new
File
(
"cache"
);
public
static
final
File
CACHE_DIR
=
new
File
(
"cache"
);
...
...
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/createtasks/BiliBiliCreateTaskJob.java
View file @
77007f74
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
createtasks
;
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
createtasks
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTask
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionT
estT
ask
;
import
com.zhiweidata.automatictest.barragecrawlerserver.exporttasks.BiliBiliExportTaskJob
;
import
com.zhiweidata.automatictest.barragecrawlerserver.exporttasks.BiliBiliExportTaskJob
;
import
java.net.URL
;
import
java.net.URL
;
import
java.util.List
;
import
java.util.List
;
...
@@ -38,7 +38,7 @@ public class BiliBiliCreateTaskJob extends CreateTaskJob {
...
@@ -38,7 +38,7 @@ public class BiliBiliCreateTaskJob extends CreateTaskJob {
roomList
.
forEach
(
room
->
{
roomList
.
forEach
(
room
->
{
try
{
try
{
Map
<?,
?>
roomMap
=
(
Map
<?,
?>)
room
;
Map
<?,
?>
roomMap
=
(
Map
<?,
?>)
room
;
BarrageCollectionTask
collectionTask
=
BiliBiliCreateTaskJob
.
super
.
createCollectionTask
(
baseUrl
+
roomMap
.
get
(
"link"
),
currentTime
);
BarrageCollectionT
estT
ask
collectionTask
=
BiliBiliCreateTaskJob
.
super
.
createCollectionTask
(
baseUrl
+
roomMap
.
get
(
"link"
),
currentTime
);
BiliBiliCreateTaskJob
.
super
.
createExportTask
(
collectionTask
,
BiliBiliExportTaskJob
.
class
);
BiliBiliCreateTaskJob
.
super
.
createExportTask
(
collectionTask
,
BiliBiliExportTaskJob
.
class
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
e
.
getMessage
(),
e
);
...
...
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/createtasks/CreateTaskJob.java
View file @
77007f74
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
createtasks
;
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
createtasks
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTask
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTestTask
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.ServerResponseMessage
;
import
com.zhiweidata.automatictest.barragecrawlerserver.exporttasks.BarrageExportTaskJob
;
import
com.zhiweidata.automatictest.barragecrawlerserver.exporttasks.BarrageExportTaskJob
;
import
com.zhiweidata.automatictest.barragecrawlerserver.mapper.BarrageCollectionTestTaskMapper
;
import
com.zhiweidata.automatictest.barragecrawlerserver.mapper.ServerResponseMessageMapper
;
import
com.zhiweidata.automatictest.barragecrawlerserver.util.TimeUtil
;
import
com.zhiweidata.automatictest.barragecrawlerserver.util.TimeUtil
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.UUID
;
import
java.util.UUID
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.entity.ByteArrayEntity
;
import
org.apache.http.entity.ByteArrayEntity
;
import
org.apache.http.entity.ContentType
;
import
org.apache.http.entity.ContentType
;
import
org.apache.ibatis.session.SqlSession
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.NotNull
;
import
org.quartz.Job
;
import
org.quartz.Job
;
import
org.quartz.JobBuilder
;
import
org.quartz.JobBuilder
;
...
@@ -24,10 +25,10 @@ import org.quartz.TriggerBuilder;
...
@@ -24,10 +25,10 @@ import org.quartz.TriggerBuilder;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
BARRAGE_COLLECTION_TASK_JOB_KEY
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
BARRAGE_COLLECTION_TASK_JOB_KEY
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
EXPORT_START_MAX_DELAY
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
EXPORT_START_MAX_DELAY
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
MONGO_TASK_REQUEST_COLLECTION
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
TASK_URL
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
TASK_URL
;
import
static
com
.
zhiweidata
.
automatictest
.
publics
.
BeanContainer
.
HTTP_CLIENT
;
import
static
com
.
zhiweidata
.
automatictest
.
publics
.
BeanContainer
.
HTTP_CLIENT
;
import
static
com
.
zhiweidata
.
automatictest
.
publics
.
BeanContainer
.
SCHEDULER
;
import
static
com
.
zhiweidata
.
automatictest
.
publics
.
BeanContainer
.
SCHEDULER
;
import
static
com
.
zhiweidata
.
automatictest
.
publics
.
BeanContainer
.
SQL_SESSION_FACTORY
;
import
static
com
.
zhiweidata
.
automatictest
.
publics
.
BeanContainer
.
STANDARD_DATE_FORMAT
;
import
static
com
.
zhiweidata
.
automatictest
.
publics
.
BeanContainer
.
STANDARD_DATE_FORMAT
;
/**
/**
...
@@ -42,9 +43,9 @@ public abstract class CreateTaskJob implements Job {
...
@@ -42,9 +43,9 @@ public abstract class CreateTaskJob implements Job {
* 请求弹幕采集服务器创建采集任务
* 请求弹幕采集服务器创建采集任务
*/
*/
@NotNull
@NotNull
protected
final
BarrageCollectionTask
createCollectionTask
(
String
liveUrl
,
long
currentTime
)
throws
IOException
{
protected
final
BarrageCollectionT
estT
ask
createCollectionTask
(
String
liveUrl
,
long
currentTime
)
throws
IOException
{
final
String
liveName
=
UUID
.
randomUUID
().
toString
();
final
String
liveName
=
UUID
.
randomUUID
().
toString
();
BarrageCollectionT
ask
collectionTask
=
new
BarrageCollection
Task
(
liveUrl
,
liveName
,
currentTime
);
BarrageCollectionT
estTask
collectionTask
=
new
BarrageCollectionTest
Task
(
liveUrl
,
liveName
,
currentTime
);
if
(
log
.
isDebugEnabled
())
{
if
(
log
.
isDebugEnabled
())
{
String
startTime
=
STANDARD_DATE_FORMAT
.
format
(
collectionTask
.
getStartTime
()
*
1000L
);
String
startTime
=
STANDARD_DATE_FORMAT
.
format
(
collectionTask
.
getStartTime
()
*
1000L
);
String
endTime
=
STANDARD_DATE_FORMAT
.
format
(
collectionTask
.
getEndTime
()
*
1000L
);
String
endTime
=
STANDARD_DATE_FORMAT
.
format
(
collectionTask
.
getEndTime
()
*
1000L
);
...
@@ -54,18 +55,22 @@ public abstract class CreateTaskJob implements Job {
...
@@ -54,18 +55,22 @@ public abstract class CreateTaskJob implements Job {
ObjectMapper
objectMapper
=
new
ObjectMapper
();
ObjectMapper
objectMapper
=
new
ObjectMapper
();
post
.
setEntity
(
new
ByteArrayEntity
(
objectMapper
.
writeValueAsBytes
(
collectionTask
),
ContentType
.
APPLICATION_JSON
));
post
.
setEntity
(
new
ByteArrayEntity
(
objectMapper
.
writeValueAsBytes
(
collectionTask
),
ContentType
.
APPLICATION_JSON
));
HttpResponse
response
=
HTTP_CLIENT
.
execute
(
post
);
HttpResponse
response
=
HTTP_CLIENT
.
execute
(
post
);
Map
<?,
?>
jsonMap
=
objectMapper
.
readValue
(
response
.
getEntity
().
getContent
(),
Map
.
class
);
ServerResponseMessage
responseMessage
=
objectMapper
.
readValue
(
response
.
getEntity
().
getContent
(),
ServerResponseMessage
.
class
);
responseMessage
.
setName
(
collectionTask
.
getName
());
collectionTask
.
setCode
((
Integer
)
jsonMap
.
get
(
"code"
));
try
(
SqlSession
session
=
SQL_SESSION_FACTORY
.
openSession
(
true
))
{
collectionTask
.
setMessage
((
String
)
jsonMap
.
get
(
"message"
));
BarrageCollectionTestTaskMapper
testTaskMapper
=
session
.
getMapper
(
BarrageCollectionTestTaskMapper
.
class
);
MONGO_TASK_REQUEST_COLLECTION
.
insertOne
(
collectionTask
);
testTaskMapper
.
insert
(
collectionTask
);
ServerResponseMessageMapper
messageMapper
=
session
.
getMapper
(
ServerResponseMessageMapper
.
class
);
messageMapper
.
insert
(
responseMessage
);
}
return
collectionTask
;
return
collectionTask
;
}
}
/**
/**
* 创建定时导出任务
* 创建定时导出任务
*/
*/
protected
final
<
T
extends
BarrageExportTaskJob
>
void
createExportTask
(
@NotNull
BarrageCollectionTask
collectionTask
,
Class
<
T
>
tClass
)
throws
SchedulerException
{
protected
final
<
T
extends
BarrageExportTaskJob
>
void
createExportTask
(
@NotNull
BarrageCollectionT
estT
ask
collectionTask
,
Class
<
T
>
tClass
)
throws
SchedulerException
{
JobBuilder
jobBuilder
=
JobBuilder
.
newJob
(
tClass
);
JobBuilder
jobBuilder
=
JobBuilder
.
newJob
(
tClass
);
String
name
=
collectionTask
.
getName
(),
group
=
tClass
.
getSimpleName
();
String
name
=
collectionTask
.
getName
(),
group
=
tClass
.
getSimpleName
();
jobBuilder
.
withIdentity
(
name
,
group
);
jobBuilder
.
withIdentity
(
name
,
group
);
...
...
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/createtasks/DouyuCreateTaskJob.java
View file @
77007f74
...
@@ -2,7 +2,7 @@ package com.zhiweidata.automatictest.barragecrawlerserver.createtasks;
...
@@ -2,7 +2,7 @@ package com.zhiweidata.automatictest.barragecrawlerserver.createtasks;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTask
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionT
estT
ask
;
import
com.zhiweidata.automatictest.barragecrawlerserver.exception.BarrageHomePageException
;
import
com.zhiweidata.automatictest.barragecrawlerserver.exception.BarrageHomePageException
;
import
com.zhiweidata.automatictest.barragecrawlerserver.exporttasks.DouyuExportTaskJob
;
import
com.zhiweidata.automatictest.barragecrawlerserver.exporttasks.DouyuExportTaskJob
;
import
java.util.HashSet
;
import
java.util.HashSet
;
...
@@ -44,7 +44,7 @@ public class DouyuCreateTaskJob extends CreateTaskJob {
...
@@ -44,7 +44,7 @@ public class DouyuCreateTaskJob extends CreateTaskJob {
final
long
currentTime
=
System
.
currentTimeMillis
();
final
long
currentTime
=
System
.
currentTimeMillis
();
liveUrls
.
forEach
(
liveUrl
->
{
liveUrls
.
forEach
(
liveUrl
->
{
try
{
try
{
BarrageCollectionTask
collectionTask
=
super
.
createCollectionTask
(
liveUrl
,
currentTime
);
BarrageCollectionT
estT
ask
collectionTask
=
super
.
createCollectionTask
(
liveUrl
,
currentTime
);
super
.
createExportTask
(
collectionTask
,
DouyuExportTaskJob
.
class
);
super
.
createExportTask
(
collectionTask
,
DouyuExportTaskJob
.
class
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
e
.
getMessage
(),
e
);
...
...
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/createtasks/HuyaCreateTaskJob.java
View file @
77007f74
...
@@ -2,7 +2,7 @@ package com.zhiweidata.automatictest.barragecrawlerserver.createtasks;
...
@@ -2,7 +2,7 @@ package com.zhiweidata.automatictest.barragecrawlerserver.createtasks;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTask
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionT
estT
ask
;
import
com.zhiweidata.automatictest.barragecrawlerserver.exception.BarrageHomePageException
;
import
com.zhiweidata.automatictest.barragecrawlerserver.exception.BarrageHomePageException
;
import
com.zhiweidata.automatictest.barragecrawlerserver.exporttasks.HuyaExportTaskJob
;
import
com.zhiweidata.automatictest.barragecrawlerserver.exporttasks.HuyaExportTaskJob
;
import
java.util.HashSet
;
import
java.util.HashSet
;
...
@@ -96,7 +96,7 @@ public class HuyaCreateTaskJob extends CreateTaskJob {
...
@@ -96,7 +96,7 @@ public class HuyaCreateTaskJob extends CreateTaskJob {
final
long
currentTime
=
System
.
currentTimeMillis
();
final
long
currentTime
=
System
.
currentTimeMillis
();
liveUrls
.
forEach
(
liveUrl
->
{
liveUrls
.
forEach
(
liveUrl
->
{
try
{
try
{
BarrageCollectionTask
collectionTask
=
super
.
createCollectionTask
(
liveUrl
,
currentTime
);
BarrageCollectionT
estT
ask
collectionTask
=
super
.
createCollectionTask
(
liveUrl
,
currentTime
);
super
.
createExportTask
(
collectionTask
,
HuyaExportTaskJob
.
class
);
super
.
createExportTask
(
collectionTask
,
HuyaExportTaskJob
.
class
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
e
.
getMessage
(),
e
);
...
...
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/entity/BarrageCollectionTask.java
→
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/entity/BarrageCollectionT
estT
ask.java
View file @
77007f74
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
entity
;
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
entity
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
java.util.Calendar
;
import
java.util.Calendar
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
...
@@ -11,16 +10,18 @@ import lombok.ToString;
...
@@ -11,16 +10,18 @@ import lombok.ToString;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
MAX_COLLECTION_TIME
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
MAX_COLLECTION_TIME
;
/**
/**
* 弹幕采集测试任务
*
* @author aszswaz
* @author aszswaz
* @createTime 2021-08-24 15:53:39
* @createTime 2021-08-24 15:53:39
* @ide IntelliJ IDEA
* @ide IntelliJ IDEA
*/
*/
@SuppressWarnings
(
"JavaDoc"
)
@SuppressWarnings
(
{
"JavaDoc"
,
"GrazieInspection"
}
)
@Getter
@Getter
@Setter
@Setter
@EqualsAndHashCode
@EqualsAndHashCode
@ToString
@ToString
public
class
BarrageCollectionTask
{
public
class
BarrageCollectionT
estT
ask
{
/**
/**
* 任务名称
* 任务名称
*/
*/
...
@@ -41,18 +42,8 @@ public class BarrageCollectionTask {
...
@@ -41,18 +42,8 @@ public class BarrageCollectionTask {
*/
*/
@JsonProperty
(
value
=
"endTime"
)
@JsonProperty
(
value
=
"endTime"
)
private
Integer
endTime
;
private
Integer
endTime
;
/**
* 服务器的响应代码
*/
@JsonIgnore
private
int
code
;
/**
* 响应信息
*/
@JsonIgnore
private
String
message
;
public
BarrageCollectionTask
(
String
liveUrl
,
String
name
,
long
currentTime
)
{
public
BarrageCollectionT
estT
ask
(
String
liveUrl
,
String
name
,
long
currentTime
)
{
this
.
url
=
liveUrl
;
this
.
url
=
liveUrl
;
this
.
name
=
name
;
this
.
name
=
name
;
...
...
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/entity/Barrage
TaskResponse
.java
→
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/entity/Barrage
ExportInfo
.java
View file @
77007f74
...
@@ -7,33 +7,63 @@ import java.io.Serializable;
...
@@ -7,33 +7,63 @@ import java.io.Serializable;
import
lombok.Data
;
import
lombok.Data
;
/**
/**
* 弹幕
信息实体类
* 弹幕
导出信息
*
*
* @author aszswaz
* @author aszswaz
* @createTime 2021-09-06 11:40:09
* @createTime 2021-09-06 11:40:09
* @ide IntelliJ IDEA
* @ide IntelliJ IDEA
*/
*/
@SuppressWarnings
(
"JavaDoc"
)
@SuppressWarnings
(
{
"JavaDoc"
,
"GrazieInspection"
}
)
@Data
@Data
public
class
BarrageTaskResponse
implements
Serializable
{
public
class
BarrageExportInfo
implements
Serializable
{
/**
* 任务ID
*/
@JsonProperty
(
value
=
"id"
)
@JsonProperty
(
value
=
"id"
)
private
String
id
;
private
String
id
;
/**
* 任务名称
*/
@JsonProperty
(
value
=
"name"
)
@JsonProperty
(
value
=
"name"
)
private
String
name
;
private
String
name
;
/**
* 直播间地址
*/
@JsonProperty
(
value
=
"url"
)
@JsonProperty
(
value
=
"url"
)
private
String
url
;
private
String
url
;
/**
* 直播间ID
*/
@JsonProperty
(
value
=
"roomId"
)
@JsonProperty
(
value
=
"roomId"
)
private
String
roomId
;
private
String
roomId
;
/**
* 任务开始时间
*/
@JsonProperty
(
value
=
"startTime"
)
@JsonProperty
(
value
=
"startTime"
)
private
int
startTime
;
private
int
startTime
;
/**
* 任务结束时间
*/
@JsonProperty
(
value
=
"endTime"
)
@JsonProperty
(
value
=
"endTime"
)
private
int
endTime
;
private
int
endTime
;
/**
* 任务执行状态
*/
@JsonProperty
(
value
=
"status"
)
@JsonProperty
(
value
=
"status"
)
private
BarrageStatusEnums
status
;
private
BarrageStatusEnums
status
;
/**
* 直播间平台
*/
@JsonProperty
(
value
=
"platform"
)
@JsonProperty
(
value
=
"platform"
)
private
PlatformEnum
platform
;
private
PlatformEnum
platform
;
/**
* 任务创建时间
*/
@JsonProperty
(
value
=
"createTime"
)
@JsonProperty
(
value
=
"createTime"
)
private
int
createTime
;
private
int
createTime
;
/**
* 弹幕采集量
*/
@JsonProperty
(
value
=
"collectionCount"
)
@JsonProperty
(
value
=
"collectionCount"
)
private
int
collectionCount
;
private
int
collectionCount
;
}
}
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/entity/ServerResponseMessage.java
0 → 100644
View file @
77007f74
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
entity
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
/**
* 服务器响应信息
*
* @author aszswaz
* @createTime 2021-09-09 14:18:29
* @ide IntelliJ IDEA
*/
@SuppressWarnings
(
"JavaDoc"
)
@Data
public
class
ServerResponseMessage
{
@JsonIgnore
private
String
name
;
@JsonProperty
(
value
=
"code"
)
private
int
code
;
@JsonProperty
(
value
=
"message"
)
private
String
message
;
}
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/exporttasks/BarrageExportTaskJob.java
View file @
77007f74
...
@@ -14,6 +14,7 @@ import org.slf4j.LoggerFactory;
...
@@ -14,6 +14,7 @@ import org.slf4j.LoggerFactory;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
CACHE_DIR
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
CACHE_DIR
;
import
static
java
.
util
.
Objects
.
isNull
;
import
static
java
.
util
.
Objects
.
isNull
;
import
static
java
.
util
.
Objects
.
nonNull
;
import
static
java
.
util
.
Objects
.
requireNonNull
;
import
static
java
.
util
.
Objects
.
requireNonNull
;
/**
/**
...
@@ -32,9 +33,8 @@ public interface BarrageExportTaskJob extends Job {
...
@@ -32,9 +33,8 @@ public interface BarrageExportTaskJob extends Job {
*
*
* @return 解压得到的文件
* @return 解压得到的文件
*/
*/
default
List
<
File
>
write
(
String
taskId
,
InputStream
inputStream
)
throws
IOException
{
default
List
<
File
>
write
(
File
cacheDir
,
InputStream
inputStream
)
throws
IOException
{
final
File
outDir
=
new
File
(
CACHE_DIR
,
taskId
);
if
(!
cacheDir
.
exists
())
if
(!
cacheDir
.
mkdirs
())
log
.
error
(
"文件夹{}创建失败"
,
cacheDir
.
getName
());
if
(!
outDir
.
exists
())
if
(!
outDir
.
mkdirs
())
log
.
error
(
"文件夹{}创建失败"
,
outDir
.
getName
());
final
List
<
File
>
outFiles
=
new
ArrayList
<>();
final
List
<
File
>
outFiles
=
new
ArrayList
<>();
try
(
ZipInputStream
zipInputStream
=
new
ZipInputStream
(
inputStream
))
{
try
(
ZipInputStream
zipInputStream
=
new
ZipInputStream
(
inputStream
))
{
...
@@ -43,7 +43,7 @@ public interface BarrageExportTaskJob extends Job {
...
@@ -43,7 +43,7 @@ public interface BarrageExportTaskJob extends Job {
while
(
true
)
{
while
(
true
)
{
ZipEntry
zipEntry
=
zipInputStream
.
getNextEntry
();
ZipEntry
zipEntry
=
zipInputStream
.
getNextEntry
();
if
(
isNull
(
zipEntry
))
break
;
if
(
isNull
(
zipEntry
))
break
;
File
execFile
=
new
File
(
requireNonNull
(
zipEntry
.
getName
()));
File
execFile
=
new
File
(
cacheDir
,
requireNonNull
(
zipEntry
.
getName
()));
try
(
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
execFile
))
{
try
(
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
execFile
))
{
while
((
len
=
zipInputStream
.
read
(
buff
))
!=
-
1
)
fileOutputStream
.
write
(
buff
,
0
,
len
);
while
((
len
=
zipInputStream
.
read
(
buff
))
!=
-
1
)
fileOutputStream
.
write
(
buff
,
0
,
len
);
}
}
...
@@ -53,4 +53,19 @@ public interface BarrageExportTaskJob extends Job {
...
@@ -53,4 +53,19 @@ public interface BarrageExportTaskJob extends Job {
}
}
return
outFiles
;
return
outFiles
;
}
}
/**
* 删除文件
*/
default
void
removeFile
(
File
file
)
{
// 如果是文件夹,先删除文件夹中的文件
if
(
file
.
isDirectory
())
{
File
[]
files
=
file
.
listFiles
();
if
(
nonNull
(
files
))
{
for
(
File
subFile
:
files
)
this
.
removeFile
(
subFile
);
}
}
// 删除文件夹或文件
if
(!
file
.
delete
())
log
.
error
(
"文件夹:{}删除失败"
,
file
.
getName
());
}
}
}
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/exporttasks/BiliBiliExportTaskJob.java
View file @
77007f74
...
@@ -3,8 +3,8 @@ package com.zhiweidata.automatictest.barragecrawlerserver.exporttasks;
...
@@ -3,8 +3,8 @@ package com.zhiweidata.automatictest.barragecrawlerserver.exporttasks;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.event.SyncReadListener
;
import
com.alibaba.excel.event.SyncReadListener
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTask
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionT
estT
ask
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.Barrage
TaskResponse
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.Barrage
ExportInfo
;
import
java.io.File
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.List
;
import
java.util.List
;
...
@@ -20,7 +20,7 @@ import org.quartz.JobExecutionContext;
...
@@ -20,7 +20,7 @@ import org.quartz.JobExecutionContext;
import
org.quartz.SchedulerException
;
import
org.quartz.SchedulerException
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
BARRAGE_COLLECTION_TASK_JOB_KEY
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
BARRAGE_COLLECTION_TASK_JOB_KEY
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
MONGO_TASK_REQUEST_COLLECTION
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
CACHE_DIR
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
TASK_URL
;
import
static
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
config
.
BaseConfig
.
TASK_URL
;
import
static
com
.
zhiweidata
.
automatictest
.
publics
.
BeanContainer
.
HTTP_CLIENT
;
import
static
com
.
zhiweidata
.
automatictest
.
publics
.
BeanContainer
.
HTTP_CLIENT
;
import
static
java
.
util
.
Objects
.
requireNonNull
;
import
static
java
.
util
.
Objects
.
requireNonNull
;
...
@@ -47,7 +47,7 @@ public class BiliBiliExportTaskJob implements BarrageExportTaskJob {
...
@@ -47,7 +47,7 @@ public class BiliBiliExportTaskJob implements BarrageExportTaskJob {
public
void
execute
(
JobExecutionContext
context
)
{
public
void
execute
(
JobExecutionContext
context
)
{
try
{
try
{
JobDataMap
jobDataMap
=
requireNonNull
(
context
.
getMergedJobDataMap
());
JobDataMap
jobDataMap
=
requireNonNull
(
context
.
getMergedJobDataMap
());
BarrageCollectionT
ask
collectionTask
=
(
BarrageCollection
Task
)
requireNonNull
(
jobDataMap
.
get
(
BARRAGE_COLLECTION_TASK_JOB_KEY
));
BarrageCollectionT
estTask
collectionTask
=
(
BarrageCollectionTest
Task
)
requireNonNull
(
jobDataMap
.
get
(
BARRAGE_COLLECTION_TASK_JOB_KEY
));
this
.
export
(
collectionTask
);
this
.
export
(
collectionTask
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
e
.
getMessage
(),
e
);
...
@@ -57,7 +57,7 @@ public class BiliBiliExportTaskJob implements BarrageExportTaskJob {
...
@@ -57,7 +57,7 @@ public class BiliBiliExportTaskJob implements BarrageExportTaskJob {
/**
/**
* 尝试导出弹幕
* 尝试导出弹幕
*/
*/
public
void
export
(
@NotNull
BarrageCollectionTask
collectionTask
)
throws
IOException
,
SchedulerException
{
public
void
export
(
@NotNull
BarrageCollectionT
estT
ask
collectionTask
)
throws
IOException
,
SchedulerException
{
String
url
=
TASK_URL
+
"?limit=20&page=1&name="
+
collectionTask
.
getName
();
String
url
=
TASK_URL
+
"?limit=20&page=1&name="
+
collectionTask
.
getName
();
HttpResponse
response
=
HTTP_CLIENT
.
execute
(
new
HttpGet
(
url
));
HttpResponse
response
=
HTTP_CLIENT
.
execute
(
new
HttpGet
(
url
));
...
@@ -71,14 +71,14 @@ public class BiliBiliExportTaskJob implements BarrageExportTaskJob {
...
@@ -71,14 +71,14 @@ public class BiliBiliExportTaskJob implements BarrageExportTaskJob {
Map
<?,
?>
dataMap
=
(
Map
<?,
?>)
requireNonNull
(
jsonMap
.
get
(
"data"
));
Map
<?,
?>
dataMap
=
(
Map
<?,
?>)
requireNonNull
(
jsonMap
.
get
(
"data"
));
List
<?>
dataList
=
(
List
<?>)
requireNonNull
(
dataMap
.
get
(
"list"
));
List
<?>
dataList
=
(
List
<?>)
requireNonNull
(
dataMap
.
get
(
"list"
));
Barrage
TaskResponse
taskResponse
=
jsonMapper
.
convertValue
(
dataList
.
get
(
0
),
BarrageTaskResponse
.
class
);
Barrage
ExportInfo
taskResponse
=
jsonMapper
.
convertValue
(
dataList
.
get
(
0
),
BarrageExportInfo
.
class
);
this
.
checkFile
(
collectionTask
,
taskResponse
);
this
.
checkFile
(
collectionTask
,
taskResponse
);
}
}
/**
/**
* 下载excel文件,并检查excel文件
* 下载excel文件,并检查excel文件
*/
*/
private
void
checkFile
(
@NotNull
BarrageCollectionT
ask
collectionTask
,
@NotNull
BarrageTaskResponse
taskResponse
)
throws
IOException
{
private
void
checkFile
(
@NotNull
BarrageCollectionT
estTask
collectionTask
,
@NotNull
BarrageExportInfo
taskResponse
)
throws
IOException
{
String
url
=
TASK_URL
+
"/"
+
taskResponse
.
getId
()
+
"/barrage"
;
String
url
=
TASK_URL
+
"/"
+
taskResponse
.
getId
()
+
"/barrage"
;
HttpGet
get
=
new
HttpGet
(
url
);
HttpGet
get
=
new
HttpGet
(
url
);
HttpResponse
response
=
HTTP_CLIENT
.
execute
(
get
);
HttpResponse
response
=
HTTP_CLIENT
.
execute
(
get
);
...
@@ -88,20 +88,20 @@ public class BiliBiliExportTaskJob implements BarrageExportTaskJob {
...
@@ -88,20 +88,20 @@ public class BiliBiliExportTaskJob implements BarrageExportTaskJob {
Map
<?,
?>
jsonMap
=
jsonMapper
.
readValue
(
response
.
getEntity
().
getContent
(),
Map
.
class
);
Map
<?,
?>
jsonMap
=
jsonMapper
.
readValue
(
response
.
getEntity
().
getContent
(),
Map
.
class
);
String
message
=
(
String
)
jsonMap
.
get
(
"message"
);
String
message
=
(
String
)
jsonMap
.
get
(
"message"
);
log
.
info
(
message
);
log
.
info
(
message
);
collectionTask
.
setCode
((
Integer
)
jsonMap
.
get
(
"code"
));
collectionTask
.
setMessage
(
message
);
MONGO_TASK_REQUEST_COLLECTION
.
insertOne
(
collectionTask
);
}
else
{
}
else
{
List
<
File
>
excelFiles
=
this
.
write
(
taskResponse
.
getId
(),
response
.
getEntity
().
getContent
());
final
File
cacheDir
=
new
File
(
CACHE_DIR
,
taskResponse
.
getId
());
List
<
File
>
excelFiles
=
this
.
write
(
cacheDir
,
response
.
getEntity
().
getContent
());
// 检查文件中的数据量
// 检查文件中的数据量
excelFiles
.
forEach
(
excelFile
->
{
for
(
File
excelFile
:
excelFiles
)
{
List
<
Map
<
Integer
,
String
>>
dataList
=
EasyExcel
.
read
(
excelFile
,
new
SyncReadListener
()).
doReadAllSync
();
List
<
Map
<
Integer
,
String
>>
dataList
=
EasyExcel
.
read
(
excelFile
,
new
SyncReadListener
()).
doReadAllSync
();
if
(
dataList
.
isEmpty
())
{
if
(
dataList
.
isEmpty
())
{
log
.
error
(
"任务ID:{},文件:{}为空"
,
taskResponse
.
getId
(),
excelFile
.
getName
());
log
.
error
(
"任务ID:{},文件:{}为空"
,
taskResponse
.
getId
(),
excelFile
.
getName
());
return
;
return
;
}
}
log
.
info
(
"任务ID:{},文件:{}弹幕数量:{}"
,
taskResponse
.
getId
(),
excelFile
.
getName
(),
dataList
.
size
());
log
.
info
(
"任务ID:{},文件:{}弹幕数量:{}"
,
taskResponse
.
getId
(),
excelFile
.
getName
(),
dataList
.
size
());
});
}
// 删除文件
this
.
removeFile
(
cacheDir
);
}
}
}
}
}
}
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/exporttasks/DouyuExportTaskJob.java
View file @
77007f74
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
exporttasks
;
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
exporttasks
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTask
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionT
estT
ask
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.quartz.JobDataMap
;
import
org.quartz.JobDataMap
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionContext
;
...
@@ -22,7 +22,7 @@ public class DouyuExportTaskJob implements BarrageExportTaskJob {
...
@@ -22,7 +22,7 @@ public class DouyuExportTaskJob implements BarrageExportTaskJob {
public
void
execute
(
JobExecutionContext
context
)
{
public
void
execute
(
JobExecutionContext
context
)
{
try
{
try
{
JobDataMap
dataMap
=
requireNonNull
(
context
.
getMergedJobDataMap
());
JobDataMap
dataMap
=
requireNonNull
(
context
.
getMergedJobDataMap
());
BarrageCollectionT
ask
collectionTask
=
(
BarrageCollection
Task
)
requireNonNull
(
dataMap
.
get
(
BARRAGE_COLLECTION_TASK_JOB_KEY
));
BarrageCollectionT
estTask
collectionTask
=
(
BarrageCollectionTest
Task
)
requireNonNull
(
dataMap
.
get
(
BARRAGE_COLLECTION_TASK_JOB_KEY
));
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
e
.
getMessage
(),
e
);
}
}
...
...
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/exporttasks/HuyaExportTaskJob.java
View file @
77007f74
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
exporttasks
;
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
exporttasks
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTask
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionT
estT
ask
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.quartz.JobDataMap
;
import
org.quartz.JobDataMap
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionContext
;
...
@@ -22,7 +22,7 @@ public class HuyaExportTaskJob implements BarrageExportTaskJob {
...
@@ -22,7 +22,7 @@ public class HuyaExportTaskJob implements BarrageExportTaskJob {
public
void
execute
(
JobExecutionContext
context
)
{
public
void
execute
(
JobExecutionContext
context
)
{
try
{
try
{
JobDataMap
dataMap
=
requireNonNull
(
context
.
getMergedJobDataMap
());
JobDataMap
dataMap
=
requireNonNull
(
context
.
getMergedJobDataMap
());
BarrageCollectionT
ask
collectionTask
=
(
BarrageCollection
Task
)
requireNonNull
(
dataMap
.
get
(
BARRAGE_COLLECTION_TASK_JOB_KEY
));
BarrageCollectionT
estTask
collectionTask
=
(
BarrageCollectionTest
Task
)
requireNonNull
(
dataMap
.
get
(
BARRAGE_COLLECTION_TASK_JOB_KEY
));
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
e
.
getMessage
(),
e
);
}
}
...
...
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/mapper/BarrageCollectionTestTaskMapper.java
0 → 100644
View file @
77007f74
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
mapper
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTestTask
;
import
org.apache.ibatis.annotations.Param
;
/**
* 测试任务信息Mapper
*
* @author aszswaz
* @createTime 2021-09-09 11:31:16
* @ide IntelliJ IDEA
*/
@SuppressWarnings
(
"JavaDoc"
)
public
interface
BarrageCollectionTestTaskMapper
{
void
insert
(
@Param
(
value
=
"task"
)
BarrageCollectionTestTask
testTask
);
}
barrage-crawler-server/src/main/java/com/zhiweidata/automatictest/barragecrawlerserver/mapper/ServerResponseMessageMapper.java
0 → 100644
View file @
77007f74
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
mapper
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.ServerResponseMessage
;
import
org.apache.ibatis.annotations.Param
;
/**
* 服务器响应信息存储
*
* @author aszswaz
* @createTime 2021-09-09 14:23:25
* @ide IntelliJ IDEA
*/
@SuppressWarnings
(
"JavaDoc"
)
public
interface
ServerResponseMessageMapper
{
void
insert
(
@Param
(
value
=
"message"
)
ServerResponseMessage
responseMessage
);
}
barrage-crawler-server/src/main/resources/mappers/BarrageCollectionTestTaskMapper.xml
0 → 100644
View file @
77007f74
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.zhiweidata.automatictest.barragecrawlerserver.mapper.BarrageCollectionTestTaskMapper"
>
<resultMap
id=
"BarrageCollectionTask"
type=
"com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTestTask"
>
<result
column=
"name"
property=
"name"
/>
<result
column=
"url"
property=
"url"
/>
<result
column=
"start_time"
property=
"startTime"
/>
<result
column=
"end_time"
property=
"endTime"
/>
</resultMap>
<insert
id=
"insert"
>
INSERT INTO barrage_collection_test_task (name, url, start_time, end_time)
VALUE (#{task.name}, #{task.url}, #{task.startTime}, #{task.endTime})
</insert>
</mapper>
\ No newline at end of file
barrage-crawler-server/src/main/resources/mappers/ServerResponseMessageMapper.xml
0 → 100644
View file @
77007f74
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.zhiweidata.automatictest.barragecrawlerserver.mapper.ServerResponseMessageMapper"
>
<resultMap
id=
"ServerResponseMessage"
type=
"com.zhiweidata.automatictest.barragecrawlerserver.entity.ServerResponseMessage"
>
<result
property=
"name"
column=
"name"
/>
<result
property=
"code"
column=
"code"
/>
<result
property=
"message"
column=
"message"
/>
</resultMap>
<insert
id=
"insert"
>
INSERT INTO server_response_message(barrage_collection_test_task_name, code, message)
VALUE (#{message.name}, #{message.code}, #{message.message})
</insert>
</mapper>
\ No newline at end of file
barrage-crawler-server/src/test/java/com/zhiweidata/automatictest/barragecrawlerserver/exporttasks/BiliBiliExportTaskJobTest.java
View file @
77007f74
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
exporttasks
;
package
com
.
zhiweidata
.
automatictest
.
barragecrawlerserver
.
exporttasks
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTask
;
import
com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionT
estT
ask
;
import
java.io.IOException
;
import
java.io.IOException
;
import
org.quartz.SchedulerException
;
import
org.quartz.SchedulerException
;
import
static
com
.
zhiweidata
.
automatictest
.
publics
.
BeanContainer
.
SCHEDULER
;
/**
/**
* @author aszswaz
* @author aszswaz
* @createTime 2021-09-06 10:03:42
* @createTime 2021-09-06 10:03:42
...
@@ -13,11 +15,12 @@ import org.quartz.SchedulerException;
...
@@ -13,11 +15,12 @@ import org.quartz.SchedulerException;
class
BiliBiliExportTaskJobTest
{
class
BiliBiliExportTaskJobTest
{
public
static
void
main
(
String
[]
args
)
throws
SchedulerException
,
IOException
{
public
static
void
main
(
String
[]
args
)
throws
SchedulerException
,
IOException
{
BarrageCollectionT
ask
collectionTask
=
new
BarrageCollection
Task
(
BarrageCollectionT
estTask
collectionTask
=
new
BarrageCollectionTest
Task
(
"https://live.bilibili.com/
21544906?hotRank=0"
,
"6783d422-840f-4230-9875-81ee91c06d09
"
,
System
.
currentTimeMillis
()
"https://live.bilibili.com/
1440094?hotRank=0"
,
"a9e30479-e231-46f3-991c-a8858400678f
"
,
System
.
currentTimeMillis
()
);
);
BiliBiliExportTaskJob
exportTaskJob
=
new
BiliBiliExportTaskJob
();
BiliBiliExportTaskJob
exportTaskJob
=
new
BiliBiliExportTaskJob
();
exportTaskJob
.
export
(
collectionTask
);
exportTaskJob
.
export
(
collectionTask
);
SCHEDULER
.
shutdown
(
true
);
}
}
}
}
\ No newline at end of file
public/pom.xml
View file @
77007f74
...
@@ -43,11 +43,23 @@
...
@@ -43,11 +43,23 @@
<version>
${quartz.version}
</version>
<version>
${quartz.version}
</version>
</dependency>
</dependency>
<!--
mongodb client
-->
<!--
https://mvnrepository.com/artifact/org.mybatis/mybatis
-->
<dependency>
<dependency>
<groupId>
org.mongodb
</groupId>
<groupId>
org.mybatis
</groupId>
<artifactId>
mongodb-driver-sync
</artifactId>
<artifactId>
mybatis
</artifactId>
<version>
${mongodb.version}
</version>
<version>
3.5.7
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
8.0.26
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.zaxxer/HikariCP -->
<dependency>
<groupId>
com.zaxxer
</groupId>
<artifactId>
HikariCP
</artifactId>
<version>
5.0.0
</version>
</dependency>
</dependency>
</dependencies>
</dependencies>
...
...
public/src/main/java/com/zhiweidata/automatictest/publics/BeanContainer.java
View file @
77007f74
package
com
.
zhiweidata
.
automatictest
.
publics
;
package
com
.
zhiweidata
.
automatictest
.
publics
;
import
com.mongodb.client.MongoClient
;
import
java.io.File
;
import
com.mongodb.client.MongoClients
;
import
java.io.IOException
;
import
com.mongodb.client.MongoDatabase
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.nio.charset.StandardCharsets
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.time.FastDateFormat
;
import
org.apache.commons.lang3.time.FastDateFormat
;
import
org.apache.http.client.HttpClient
;
import
org.apache.http.client.HttpClient
;
import
org.apache.http.client.config.RequestConfig
;
import
org.apache.http.client.config.RequestConfig
;
import
org.apache.http.impl.client.HttpClientBuilder
;
import
org.apache.http.impl.client.HttpClientBuilder
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.impl.client.HttpClients
;
import
org.bson.codecs.configuration.CodecProvider
;
import
org.apache.ibatis.builder.xml.XMLConfigBuilder
;
import
org.bson.codecs.configuration.CodecRegistry
;
import
org.apache.ibatis.builder.xml.XMLMapperBuilder
;
import
org.bson.codecs.pojo.PojoCodecProvider
;
import
org.apache.ibatis.io.Resources
;
import
org.apache.ibatis.session.Configuration
;
import
org.apache.ibatis.session.SqlSessionFactory
;
import
org.apache.ibatis.session.SqlSessionFactoryBuilder
;
import
org.jetbrains.annotations.NotNull
;
import
org.quartz.Scheduler
;
import
org.quartz.Scheduler
;
import
org.quartz.SchedulerException
;
import
org.quartz.SchedulerException
;
import
org.quartz.impl.StdSchedulerFactory
;
import
org.quartz.impl.StdSchedulerFactory
;
import
static
com
.
mongodb
.
MongoClientSettings
.
getDefaultCodecRegistry
;
import
static
java
.
util
.
Objects
.
requireNonNull
;
import
static
org
.
bson
.
codecs
.
configuration
.
CodecRegistries
.
fromProviders
;
import
static
org
.
bson
.
codecs
.
configuration
.
CodecRegistries
.
fromRegistries
;
/**
/**
* Bean容器
* Bean容器
...
@@ -39,17 +43,13 @@ public class BeanContainer {
...
@@ -39,17 +43,13 @@ public class BeanContainer {
*/
*/
public
static
final
Scheduler
SCHEDULER
;
public
static
final
Scheduler
SCHEDULER
;
/**
/**
* mongodb 客户端
*/
public
static
final
MongoClient
MONGO_CLIENT
;
/**
* 整个项目专用数据库
*/
public
static
final
MongoDatabase
MONGO_DATABASE
;
/**
* 标准日期格式化
* 标准日期格式化
*/
*/
public
static
final
FastDateFormat
STANDARD_DATE_FORMAT
=
FastDateFormat
.
getInstance
(
"yyyy-MM-dd HH:mm:ss.SSS"
);
public
static
final
FastDateFormat
STANDARD_DATE_FORMAT
=
FastDateFormat
.
getInstance
(
"yyyy-MM-dd HH:mm:ss.SSS"
);
/**
* mybatis session工厂
*/
public
static
final
SqlSessionFactory
SQL_SESSION_FACTORY
;
static
{
static
{
...
@@ -71,11 +71,46 @@ public class BeanContainer {
...
@@ -71,11 +71,46 @@ public class BeanContainer {
configBuilder
.
setRedirectsEnabled
(
true
);
configBuilder
.
setRedirectsEnabled
(
true
);
clientBuilder
.
setDefaultRequestConfig
(
configBuilder
.
build
());
clientBuilder
.
setDefaultRequestConfig
(
configBuilder
.
build
());
HTTP_CLIENT
=
clientBuilder
.
build
();
HTTP_CLIENT
=
clientBuilder
.
build
();
}
static
{
SqlSessionFactory
sqlSessionFactory
=
null
;
try
(
InputStream
inputStream
=
Resources
.
getResourceAsStream
(
"mybatis.xml"
))
{
SqlSessionFactoryBuilder
builder
=
new
SqlSessionFactoryBuilder
();
// 先读取xml中的配置
XMLConfigBuilder
configBuilder
=
new
XMLConfigBuilder
(
new
InputStreamReader
(
inputStream
,
StandardCharsets
.
UTF_8
));
configBuilder
.
parse
();
Configuration
configuration
=
configBuilder
.
getConfiguration
();
// 扫描mapper
File
mappersDir
=
Resources
.
getResourceAsFile
(
"mappers"
);
scanMapper
(
mappersDir
,
configuration
);
MONGO_CLIENT
=
MongoClients
.
create
(
"mongodb://admin:z199809051593@192.168.0.119"
);
sqlSessionFactory
=
builder
.
build
(
configuration
);
// 启用 POJO 对象映射
}
catch
(
Exception
e
)
{
CodecProvider
pojoCodecProvider
=
PojoCodecProvider
.
builder
().
automatic
(
true
).
build
();
log
.
error
(
e
.
getMessage
(),
e
);
CodecRegistry
pojoCodecRegistry
=
fromRegistries
(
getDefaultCodecRegistry
(),
fromProviders
(
pojoCodecProvider
));
}
MONGO_DATABASE
=
MONGO_CLIENT
.
getDatabase
(
"automatic_test"
).
withCodecRegistry
(
pojoCodecRegistry
);
SQL_SESSION_FACTORY
=
sqlSessionFactory
;
}
/**
* 扫描mapper
*/
private
static
void
scanMapper
(
@NotNull
File
file
,
@NotNull
Configuration
configuration
)
throws
IOException
{
if
(
file
.
isDirectory
())
{
File
[]
mappers
=
requireNonNull
(
file
.
listFiles
());
for
(
File
mapper
:
mappers
)
{
scanMapper
(
mapper
,
configuration
);
}
}
else
{
String
fileName
=
file
.
getName
();
if
(
".xml"
.
equals
(
fileName
.
substring
(
fileName
.
lastIndexOf
(
"."
))))
{
String
resource
=
file
.
toPath
().
toUri
().
toString
();
try
(
InputStream
inputStream
=
Resources
.
getUrlAsStream
(
resource
))
{
XMLMapperBuilder
mapperBuilder
=
new
XMLMapperBuilder
(
inputStream
,
configuration
,
resource
,
configuration
.
getSqlFragments
());
mapperBuilder
.
parse
();
}
}
}
}
}
}
}
public/src/main/java/com/zhiweidata/automatictest/publics/HikariDataSourceFactory.java
0 → 100644
View file @
77007f74
package
com
.
zhiweidata
.
automatictest
.
publics
;
import
com.zaxxer.hikari.HikariConfig
;
import
com.zaxxer.hikari.HikariDataSource
;
import
java.util.Properties
;
import
javax.sql.DataSource
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.ibatis.datasource.DataSourceFactory
;
import
org.jetbrains.annotations.NotNull
;
/**
* mysql的数据库连接池Hikari工厂
*
* @author aszswaz
* @createTime 2021-09-09 10:41:07
* @ide IntelliJ IDEA
*/
@Slf4j
@SuppressWarnings
(
"JavaDoc"
)
public
class
HikariDataSourceFactory
implements
DataSourceFactory
{
/**
* 数据库连接池
*/
private
HikariDataSource
dataSource
;
@Override
public
void
setProperties
(
@NotNull
Properties
props
)
{
final
String
initSql
=
"SHOW DATABASES"
;
final
long
timeout
=
60000
;
HikariConfig
config
=
new
HikariConfig
();
config
.
setAutoCommit
(
true
);
config
.
setDriverClassName
(
props
.
getProperty
(
"driver"
));
config
.
setUsername
(
props
.
getProperty
(
"username"
));
config
.
setPassword
(
props
.
getProperty
(
"password"
));
config
.
setJdbcUrl
(
props
.
getProperty
(
"url"
));
config
.
setConnectionTestQuery
(
initSql
);
config
.
setConnectionInitSql
(
initSql
);
config
.
setConnectionTimeout
(
timeout
);
config
.
setIdleTimeout
(
timeout
<<
1
);
config
.
setInitializationFailTimeout
(
timeout
);
config
.
setMaximumPoolSize
(
10
);
config
.
setMinimumIdle
(
5
);
config
.
setMaxLifetime
(
timeout
<<
2
);
this
.
dataSource
=
new
HikariDataSource
(
config
);
}
@Override
public
DataSource
getDataSource
()
{
return
this
.
dataSource
;
}
}
public/src/main/resources/mybatis.xml
0 → 100644
View file @
77007f74
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments
default=
"development"
>
<environment
id=
"development"
>
<transactionManager
type=
"JDBC"
/>
<dataSource
type=
"com.zhiweidata.automatictest.publics.HikariDataSourceFactory"
>
<property
name=
"driver"
value=
"com.mysql.cj.jdbc.Driver"
/>
<property
name=
"url"
value=
"jdbc:mysql://192.168.0.119:3306/automatic_test?useSSL=FALSE&serverTimezone=Asia/Shanghai"
/>
<property
name=
"username"
value=
"root"
/>
<property
name=
"password"
value=
"z199809051593"
/>
</dataSource>
</environment>
</environments>
</configuration>
\ No newline at end of file
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