Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
messageflow
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
虞诚毅
messageflow
Commits
618b8f3b
Commit
618b8f3b
authored
Apr 20, 2018
by
win7
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
配置更改为服务器配置
parent
3594cf63
Show whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
266 additions
and
423 deletions
+266
-423
pom.xml
+2
-10
src/main/java/com/zhiwei/messageflow/ES4RedisRunner.java
+2
-2
src/main/java/com/zhiwei/messageflow/ES4RedisStart.java
+3
-0
src/main/java/com/zhiwei/messageflow/ES4RedisTask.java
+13
-14
src/main/java/com/zhiwei/messageflow/ES4RedisThread.java
+1
-1
src/main/java/com/zhiwei/messageflow/bean/MediaMessage.java
+2
-0
src/main/java/com/zhiwei/messageflow/config/RedisConfig.java
+6
-96
src/main/java/com/zhiwei/messageflow/es/ESClient.java
+3
-5
src/main/java/com/zhiwei/messageflow/es/dao/impl/ESDaoImpl.java
+48
-24
src/main/java/com/zhiwei/messageflow/es/service/impl/HighLightFillingServiceImpl.java
+0
-1
src/main/java/com/zhiwei/messageflow/es/service/impl/NoiseProcessingServiceImpl.java
+1
-1
src/main/java/com/zhiwei/messageflow/es/service/impl/TrackHitAndWarnServiceImpl.java
+7
-3
src/main/java/com/zhiwei/messageflow/getmessage/MatchingInfo.java
+2
-4
src/main/java/com/zhiwei/messageflow/getmessage/bean/Media.java
+1
-0
src/main/java/com/zhiwei/messageflow/mail/MailSenderInfo.java
+31
-8
src/main/java/com/zhiwei/messageflow/mail/MyAuthenticator.java
+15
-13
src/main/java/com/zhiwei/messageflow/mail/SendMail.java
+0
-61
src/main/java/com/zhiwei/messageflow/mongo/config/PrimaryMongoConfig.java
+1
-1
src/main/java/com/zhiwei/messageflow/mongo/config/ThirdaryMongoConfig.java
+1
-1
src/main/java/com/zhiwei/messageflow/mongo/dao/HuserInfoDao.java
+0
-0
src/main/java/com/zhiwei/messageflow/mongo/dao/PlatformDao.java
+0
-0
src/main/java/com/zhiwei/messageflow/mongo/dao/ProjectDao.java
+0
-0
src/main/java/com/zhiwei/messageflow/mongo/dao/TrackRuleDao.java
+0
-0
src/main/java/com/zhiwei/messageflow/mongo/dao/UserWechatDao.java
+0
-0
src/main/java/com/zhiwei/messageflow/mongo/service/UserMailService.java
+9
-1
src/main/java/com/zhiwei/messageflow/mongo/service/WechatSendService.java
+1
-0
src/main/java/com/zhiwei/messageflow/mongo/service/impl/UserMailServiceImpl.java
+11
-7
src/main/java/com/zhiwei/messageflow/mongo/service/impl/WechatSendServiceImpl.java
+10
-9
src/main/java/com/zhiwei/messageflow/redis/RedisPoolAndTools.java
+2
-15
src/main/java/com/zhiwei/messageflow/redis/service/impl/RedisServiceImpl.java
+1
-1
src/main/java/com/zhiwei/messageflow/service/DisposeMessageService.java
+8
-17
src/main/java/com/zhiwei/messageflow/service/impl/DisposeMessageServiceImpl.java
+12
-13
src/main/java/com/zhiwei/messageflow/test/GetMessage.java
+0
-0
src/main/java/com/zhiwei/messageflow/util/CommonUtils.java
+32
-44
src/main/java/com/zhiwei/messageflow/util/HttpRequest.java
+5
-8
src/main/java/com/zhiwei/messageflow/util/MyX509TrustManager.java
+0
-0
src/main/java/com/zhiwei/messageflow/util/SerializeUtil.java
+13
-33
src/main/java/com/zhiwei/messageflow/util/ThreadEndbyTimerTask.java
+1
-1
src/main/java/com/zhiwei/messageflow/util/TimeUtil.java
+19
-28
src/main/resources/es.properties
+1
-0
src/main/resources/redis.properties
+2
-1
No files found.
pom.xml
View file @
618b8f3b
...
...
@@ -9,7 +9,6 @@
<packaging>
jar
</packaging>
<name>
messageflow
</name>
<description>
Demo project for Spring Boot
</description>
<parent>
<groupId>
org.springframework.boot
</groupId>
...
...
@@ -42,7 +41,6 @@
<dependency>
<groupId>
org.elasticsearch.client
</groupId>
<artifactId>
transport
</artifactId>
<version>
5.2.2
</version>
<!--$NO-MVN-MAN-VER$ -->
</dependency>
<dependency>
<groupId>
com.zhiwei
</groupId>
...
...
@@ -53,12 +51,10 @@
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-api
</artifactId>
<version>
2.7
</version>
<!--$NO-MVN-MAN-VER$ -->
</dependency>
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-core
</artifactId>
<version>
2.7
</version>
<!--$NO-MVN-MAN-VER$ -->
</dependency>
<!-- jackson -->
...
...
@@ -85,6 +81,7 @@
<artifactId>
spring-boot-configuration-processor
</artifactId>
<optional>
true
</optional>
</dependency>
<!-- Jedis -->
<dependency>
<groupId>
redis.clients
</groupId>
...
...
@@ -118,15 +115,10 @@
<version>
1.4.7
</version>
</dependency>
<!-- solr -->
<dependency>
<groupId>
org.apache.solr
</groupId>
<artifactId>
solr-solrj
</artifactId>
</dependency>
</dependencies>
<build>
<finalName>
messageflow
</finalName>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
...
...
src/main/java/com/zhiwei/messageflow/ES4RedisRunner.java
View file @
618b8f3b
...
...
@@ -36,7 +36,7 @@ public class ES4RedisRunner implements ApplicationRunner {
// 手动注入bean ES4RedisStart
ES4RedisStart
start
=
ApplicationContextProvider
.
getBean
(
"ES4RedisStart"
,
ES4RedisStart
.
class
);
// 定时器
项目启动后100ms运行 每次间隔8min
// 定时器
Timer
timer
=
new
Timer
();
timer
.
schedule
(
...
...
@@ -48,7 +48,7 @@ public class ES4RedisRunner implements ApplicationRunner {
e
.
printStackTrace
();
}
}
},
100L
,
3
0
*
1000L
);
},
100L
,
5
0
*
1000L
);
// /**
// * ES库消息输出Excel并分析关键词重复数据
...
...
src/main/java/com/zhiwei/messageflow/ES4RedisStart.java
View file @
618b8f3b
...
...
@@ -29,6 +29,9 @@ public class ES4RedisStart {
@Autowired
private
ES4RedisTask
es4RedisTask
;
/**
* 启动线程
*/
public
void
startThread
()
throws
JsonParseException
,
JsonMappingException
,
IOException
,
InterruptedException
{
// 项目列表
...
...
src/main/java/com/zhiwei/messageflow/ES4RedisTask.java
View file @
618b8f3b
...
...
@@ -53,8 +53,7 @@ public class ES4RedisTask {
@Autowired
private
RedisService
redisService
;
@Autowired
private
ObjectMapper
mapper
;
private
ObjectMapper
mapper
=
new
ObjectMapper
();
private
static
final
int
allkeywordcount
=
5000
;
private
static
final
int
keywordscount
=
2000
;
...
...
@@ -147,8 +146,8 @@ public class ES4RedisTask {
if
(
platformName
.
equals
(
"微博"
))
{
// 获取新的rsid和信息实体
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredWeiboMessage
(
trackRules
,
noiseRules
,
all
keywords
,
count
,
all
startrsid
,
-
1L
,
platformName
,
project
.
getProjectName
());
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredWeiboMessage
(
noiseRules
,
allkeywords
,
count
,
allstartrsid
,
-
1L
,
platformName
,
project
.
getProjectName
());
// 获取查询到的信息
List
<
WeiboMessage
>
messages
=
ram
.
getWlist
();
...
...
@@ -172,8 +171,8 @@ public class ES4RedisTask {
}
else
if
(
platformName
.
equals
(
"知乎"
))
{
// 获取新的rsid和信息实体
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredZhihuMessage
(
trackRules
,
noiseRules
,
all
keywords
,
count
,
all
startrsid
,
-
1L
,
platformName
,
project
.
getProjectName
());
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredZhihuMessage
(
noiseRules
,
allkeywords
,
count
,
allstartrsid
,
-
1L
,
platformName
,
project
.
getProjectName
());
// 获取查询到的信息
List
<
ZhihuMessage
>
messages
=
ram
.
getZlist
();
...
...
@@ -195,8 +194,8 @@ public class ES4RedisTask {
}
else
if
(
platformName
.
equals
(
"视频"
))
{
// 获取新的rsid和信息实体
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredVideoMessage
(
trackRules
,
noiseRules
,
all
keywords
,
count
,
all
startrsid
,
-
1L
,
platformName
,
project
.
getProjectName
());
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredVideoMessage
(
noiseRules
,
allkeywords
,
count
,
allstartrsid
,
-
1L
,
platformName
,
project
.
getProjectName
());
// 获取查询到的信息
List
<
VideoMessage
>
messages
=
ram
.
getVlist
();
...
...
@@ -218,8 +217,8 @@ public class ES4RedisTask {
}
else
{
// 获取新的rsid和信息实体
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredMediaMessage
(
trackRules
,
noiseRules
,
all
keywords
,
count
,
all
startrsid
,
-
1L
,
platformName
,
project
.
getProjectName
());
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredMediaMessage
(
noiseRules
,
allkeywords
,
count
,
allstartrsid
,
-
1L
,
platformName
,
project
.
getProjectName
());
// 获取查询到的信息
List
<
MediaMessage
>
messages
=
ram
.
getMlist
();
...
...
@@ -266,7 +265,7 @@ public class ES4RedisTask {
if
(
platformName
.
equals
(
"微博"
))
{
// 获取新的rsid和信息实体
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredWeiboMessage
(
trackRules
,
noiseRules
,
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredWeiboMessage
(
noiseRules
,
kwn
.
getKeyWords
(),
count
,
startrsid
,
-
1L
,
platformName
,
project
.
getProjectName
());
// 获取查询到的信息
...
...
@@ -290,7 +289,7 @@ public class ES4RedisTask {
}
else
if
(
platformName
.
equals
(
"知乎"
))
{
// 获取新的rsid和信息实体
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredZhihuMessage
(
trackRules
,
noiseRules
,
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredZhihuMessage
(
noiseRules
,
kwn
.
getKeyWords
(),
count
,
startrsid
,
-
1L
,
platformName
,
project
.
getProjectName
());
// 获取查询到的信息
...
...
@@ -315,7 +314,7 @@ public class ES4RedisTask {
}
else
if
(
platformName
.
equals
(
"视频"
))
{
// 获取新的rsid和信息实体
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredVideoMessage
(
trackRules
,
noiseRules
,
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredVideoMessage
(
noiseRules
,
kwn
.
getKeyWords
(),
count
,
startrsid
,
-
1L
,
platformName
,
project
.
getProjectName
());
// 获取查询到的信息
...
...
@@ -340,7 +339,7 @@ public class ES4RedisTask {
}
else
{
// 获取新的rsid和信息实体
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredMediaMessage
(
trackRules
,
noiseRules
,
RsidAndMessages
ram
=
disposeMessageService
.
getFilteredMediaMessage
(
noiseRules
,
kwn
.
getKeyWords
(),
count
,
startrsid
,
-
1L
,
platformName
,
project
.
getProjectName
());
// 获取查询到的信息
...
...
src/main/java/com/zhiwei/messageflow/ES4RedisThread.java
View file @
618b8f3b
...
...
@@ -82,7 +82,7 @@ public class ES4RedisThread extends Thread {
Thread
.
currentThread
().
interrupted
();
log
.
warn
(
"{}项目超时"
,
project
.
getProjectName
());
}
},
2
9
*
1000L
);
},
4
9
*
1000L
);
// 程序运行
log
.
info
(
"Running {}"
,
threadName
);
...
...
src/main/java/com/zhiwei/messageflow/bean/MediaMessage.java
View file @
618b8f3b
...
...
@@ -32,4 +32,5 @@ public class MediaMessage {
private
String
colum
;
private
String
rootSourcce
;
private
Double
channelIndex
;
private
String
crawlerV
;
}
\ No newline at end of file
src/main/java/com/zhiwei/messageflow/config/RedisConfig.java
View file @
618b8f3b
...
...
@@ -5,7 +5,12 @@ import org.springframework.context.annotation.Configuration;
import
org.springframework.context.annotation.PropertySource
;
import
org.springframework.stereotype.Component
;
import
lombok.Data
;
import
lombok.ToString
;
//redus配置类
@Data
@ToString
@Component
@Configuration
@ConfigurationProperties
(
prefix
=
"redis"
)
...
...
@@ -18,6 +23,7 @@ public class RedisConfig {
private
boolean
testOnReturn
;
private
String
ip
;
private
int
port
;
private
String
password
;
private
int
keyMaxSize
;
...
...
@@ -25,100 +31,4 @@ public class RedisConfig {
private
int
user_keyMaxSize
;
private
int
cacheSize
;
private
int
intitCount
;
public
int
getMaxTotal
()
{
return
maxTotal
;
}
public
void
setMaxTotal
(
int
maxTotal
)
{
this
.
maxTotal
=
maxTotal
;
}
public
int
getMaxIdle
()
{
return
maxIdle
;
}
public
void
setMaxIdle
(
int
maxIdle
)
{
this
.
maxIdle
=
maxIdle
;
}
public
int
getMaxWaitMillis
()
{
return
maxWaitMillis
;
}
public
void
setMaxWaitMillis
(
int
maxWaitMillis
)
{
this
.
maxWaitMillis
=
maxWaitMillis
;
}
public
boolean
isTestOnBorrow
()
{
return
testOnBorrow
;
}
public
void
setTestOnBorrow
(
boolean
testOnBorrow
)
{
this
.
testOnBorrow
=
testOnBorrow
;
}
public
boolean
isTestOnReturn
()
{
return
testOnReturn
;
}
public
void
setTestOnReturn
(
boolean
testOnReturn
)
{
this
.
testOnReturn
=
testOnReturn
;
}
public
String
getIp
()
{
return
ip
;
}
public
void
setIp
(
String
ip
)
{
this
.
ip
=
ip
;
}
public
int
getPort
()
{
return
port
;
}
public
void
setPort
(
int
port
)
{
this
.
port
=
port
;
}
public
int
getKeyMaxSize
()
{
return
keyMaxSize
;
}
public
void
setKeyMaxSize
(
int
keyMaxSize
)
{
this
.
keyMaxSize
=
keyMaxSize
;
}
public
int
getSelectDB
()
{
return
selectDB
;
}
public
void
setSelectDB
(
int
selectDB
)
{
this
.
selectDB
=
selectDB
;
}
public
int
getUser_keyMaxSize
()
{
return
user_keyMaxSize
;
}
public
void
setUser_keyMaxSize
(
int
user_keyMaxSize
)
{
this
.
user_keyMaxSize
=
user_keyMaxSize
;
}
public
int
getCacheSize
()
{
return
cacheSize
;
}
public
void
setCacheSize
(
int
cacheSize
)
{
this
.
cacheSize
=
cacheSize
;
}
public
int
getIntitCount
()
{
return
intitCount
;
}
public
void
setIntitCount
(
int
intitCount
)
{
this
.
intitCount
=
intitCount
;
}
}
src/main/java/com/zhiwei/messageflow/es/ESClient.java
View file @
618b8f3b
...
...
@@ -9,8 +9,6 @@ import org.elasticsearch.common.transport.InetSocketTransportAddress;
import
org.elasticsearch.transport.client.PreBuiltTransportClient
;
import
org.springframework.stereotype.Component
;
import
com.zhiwei.messageflow.config.ESConfig
;
@Component
public
class
ESClient
{
public
static
TransportClient
client
=
ESClientHolder
.
getESClient
();
...
...
@@ -18,15 +16,15 @@ public class ESClient {
private
static
class
ESClientHolder
{
private
static
TransportClient
getESClient
()
{
Settings
esSettings
=
Settings
.
builder
().
put
(
"cluster.name"
,
ESConfig
.
clusterName
)
// 设置ES实例的名称
.
put
(
"client.transport.sniff"
,
fals
e
)
// 自动嗅探整个集群的状态,把集群中其他ES节点的ip添加到本地的客户端列表中
Settings
esSettings
=
Settings
.
builder
().
put
(
"cluster.name"
,
"Media-University"
)
// 设置ES实例的名称
.
put
(
"client.transport.sniff"
,
tru
e
)
// 自动嗅探整个集群的状态,把集群中其他ES节点的ip添加到本地的客户端列表中
// .put("client.transport.ping_timeout", "15s")
.
build
();
TransportClient
client
=
new
PreBuiltTransportClient
(
esSettings
);
// 此步骤添加IP,至少一个,其实一个就够了,因为添加了自动嗅探配置
try
{
client
.
addTransportAddress
(
new
InetSocketTransportAddress
(
InetAddress
.
getByName
(
ESConfig
.
ip
),
ESConfig
.
esPort
));
new
InetSocketTransportAddress
(
InetAddress
.
getByName
(
"192.168.1.75"
),
9300
));
}
catch
(
UnknownHostException
e
)
{
e
.
printStackTrace
();
}
...
...
src/main/java/com/zhiwei/messageflow/es/dao/impl/ESDaoImpl.java
View file @
618b8f3b
...
...
@@ -14,7 +14,6 @@ import org.elasticsearch.search.sort.SortOrder;
import
org.springframework.stereotype.Component
;
import
com.zhiwei.es.util.ESIndexesUtil
;
import
com.zhiwei.messageflow.config.ESConfig
;
import
com.zhiwei.messageflow.es.ESClient
;
import
com.zhiwei.messageflow.es.dao.ESDao
;
import
com.zhiwei.messageflow.util.ESQueryUtil
;
...
...
@@ -25,7 +24,9 @@ public class ESDaoImpl implements ESDao {
TransportClient
transportClient
=
ESClient
.
client
;
protected
static
ESIndexesUtil
.
ESIndexes
indexes
=
ESIndexesUtil
.
create
(
"1.119.44.201"
,
9200
);
protected
static
ESIndexesUtil
.
ESIndexes
indexes
=
ESIndexesUtil
.
create
(
"192.168.1.75"
,
9200
);
// protected static ESIndexesUtil.ESIndexes indexes =
// ESIndexesUtil.create("1.119.44.201", 9200);
@Override
public
SearchHits
getWeiboDataFromEs
(
List
<
String
>
keywords
,
int
count
,
long
startid
,
long
endid
,
String
platform
,
...
...
@@ -51,9 +52,9 @@ public class ESDaoImpl implements ESDao {
List
<
String
>
list
=
indexes
.
getLastIndexes
(
"network"
,
2
);
String
[]
indexlist
=
list
.
toArray
(
new
String
[
list
.
size
()]);
SearchRequestBuilder
searchRequestBuilder
=
transportClient
.
prepareSearch
(
indexlist
)
.
setTypes
(
ESConfig
.
weiboType
).
highlighter
(
highlightBuilder
).
setQuery
(
boolQueryBuilder
)
.
addSort
(
"rstime"
,
SortOrder
.
DESC
).
setFrom
(
0
).
setSize
(
count
);
SearchRequestBuilder
searchRequestBuilder
=
transportClient
.
prepareSearch
(
indexlist
)
.
setTypes
(
"status"
)
.
highlighter
(
highlightBuilder
).
setQuery
(
boolQueryBuilder
).
addSort
(
"rstime"
,
SortOrder
.
DESC
).
setFrom
(
0
)
.
setSize
(
count
);
if
(
startid
>
0
&&
endid
<=
0
)
{
searchRequestBuilder
.
setPostFilter
(
QueryBuilders
.
rangeQuery
(
"rstime"
).
from
(
startid
));
...
...
@@ -94,9 +95,9 @@ public class ESDaoImpl implements ESDao {
HighlightBuilder
highlightBuilder
=
ESQueryUtil
.
getHighlightBuilder
(
"question_title"
,
"question_content"
,
"answer_content"
);
// 高亮设置
SearchRequestBuilder
searchRequestBuilder
=
transportClient
.
prepareSearch
(
ESConfig
.
zhihuIndexName
)
.
setTypes
(
ESConfig
.
zhihuType
).
highlighter
(
highlightBuilder
).
setQuery
(
boolQueryBuilder
)
.
addSort
(
"rsid"
,
SortOrder
.
DESC
).
setFrom
(
0
).
setSize
(
count
);
SearchRequestBuilder
searchRequestBuilder
=
transportClient
.
prepareSearch
(
"zhihu*"
).
setTypes
(
"zhihu"
)
.
highlighter
(
highlightBuilder
).
setQuery
(
boolQueryBuilder
).
addSort
(
"rsid"
,
SortOrder
.
DESC
).
setFrom
(
0
)
.
setSize
(
count
);
if
(
startid
>
0
&&
endid
<=
0
)
{
searchRequestBuilder
.
setPostFilter
(
QueryBuilders
.
rangeQuery
(
"rsid"
).
from
(
startid
));
...
...
@@ -139,9 +140,9 @@ public class ESDaoImpl implements ESDao {
String
[]
indexlist
=
list
.
toArray
(
new
String
[
list
.
size
()]);
SearchRequestBuilder
searchRequestBuilder
=
transportClient
.
prepareSearch
(
indexlist
)
.
setTypes
(
ESConfig
.
videoType
).
highlighter
(
highlightBuilder
).
setQuery
(
boolQueryBuilder
)
.
addSort
(
"rsid"
,
SortOrder
.
DESC
).
setFrom
(
0
).
setSize
(
count
);
SearchRequestBuilder
searchRequestBuilder
=
transportClient
.
prepareSearch
(
indexlist
)
.
setTypes
(
"video"
)
.
highlighter
(
highlightBuilder
).
setQuery
(
boolQueryBuilder
).
addSort
(
"rsid"
,
SortOrder
.
DESC
).
setFrom
(
0
)
.
setSize
(
count
);
if
(
startid
>
0
&&
endid
<=
0
)
{
searchRequestBuilder
.
setPostFilter
(
QueryBuilders
.
rangeQuery
(
"rsid"
).
from
(
startid
));
...
...
@@ -185,8 +186,23 @@ public class ESDaoImpl implements ESDao {
}
else
if
(
platform
.
equals
(
"报刊"
))
{
boolQueryBuilder
.
must
(
QueryBuilders
.
matchPhraseQuery
(
"type"
,
"平媒"
));
}
else
if
(
platform
.
equals
(
"今日头条"
))
{
boolQueryBuilder
.
must
(
QueryBuilders
.
boolQuery
().
must
(
QueryBuilders
.
matchPhraseQuery
(
"type"
,
"今日头条"
))
.
must
(
QueryBuilders
.
existsQuery
(
"spyderInfoId"
)));
// boolQueryBuilder.must(
// QueryBuilders.boolQuery()
// .must(
// QueryBuilders.matchPhraseQuery("type", "今日头条")
// )
// .must(
// QueryBuilders.existsQuery("spyderInfoId")
// )
// );
BoolQueryBuilder
booljrQueryBuilder1
=
QueryBuilders
.
boolQuery
();
BoolQueryBuilder
booljrQueryBuilder2
=
QueryBuilders
.
boolQuery
();
booljrQueryBuilder1
.
must
(
QueryBuilders
.
matchPhraseQuery
(
"type"
,
"今日头条"
))
.
must
(
QueryBuilders
.
existsQuery
(
"spyderInfoId"
));
booljrQueryBuilder2
.
must
(
QueryBuilders
.
matchPhraseQuery
(
"type"
,
"今日头条"
))
.
must
(
QueryBuilders
.
existsQuery
(
"crawlerV"
));
boolQueryBuilder
.
must
(
QueryBuilders
.
boolQuery
().
should
(
booljrQueryBuilder1
).
should
(
booljrQueryBuilder2
));
}
else
if
(
platform
.
equals
(
"客户端"
))
{
boolQueryBuilder
.
must
(
QueryBuilders
.
boolQuery
().
should
(
QueryBuilders
.
wildcardQuery
(
"type"
,
"*客户端"
))
.
should
(
QueryBuilders
.
matchPhraseQuery
(
"type"
,
"脉脉"
)));
...
...
@@ -258,9 +274,9 @@ public class ESDaoImpl implements ESDao {
List
<
String
>
list
=
indexes
.
getLastIndexes
(
"network"
,
2
);
String
[]
indexlist
=
list
.
toArray
(
new
String
[
list
.
size
()]);
SearchRequestBuilder
searchRequestBuilder
=
transportClient
.
prepareSearch
(
indexlist
)
.
setTypes
(
ESConfig
.
weiboType
).
highlighter
(
highlightBuilder
).
setQuery
(
boolQueryBuilder
)
.
addSort
(
"rstime"
,
SortOrder
.
DESC
).
setFrom
(
0
).
setSize
(
count
);
SearchRequestBuilder
searchRequestBuilder
=
transportClient
.
prepareSearch
(
indexlist
)
.
setTypes
(
"status"
)
.
highlighter
(
highlightBuilder
).
setQuery
(
boolQueryBuilder
).
addSort
(
"rstime"
,
SortOrder
.
DESC
).
setFrom
(
0
)
.
setSize
(
count
);
searchRequestBuilder
.
setPostFilter
(
QueryBuilders
.
rangeQuery
(
"time"
).
from
(
stime
).
to
(
etime
));
SearchResponse
response
=
searchRequestBuilder
.
execute
().
actionGet
();
SearchHits
searchHits
=
response
.
getHits
();
...
...
@@ -297,9 +313,9 @@ public class ESDaoImpl implements ESDao {
HighlightBuilder
highlightBuilder
=
ESQueryUtil
.
getHighlightBuilder
(
"question_title"
,
"question_content"
,
"answer_content"
);
// 高亮设置
SearchRequestBuilder
searchRequestBuilder
=
transportClient
.
prepareSearch
(
ESConfig
.
zhihuIndexName
)
.
setTypes
(
ESConfig
.
zhihuType
).
highlighter
(
highlightBuilder
).
setQuery
(
boolQueryBuilder
)
.
addSort
(
"rsid"
,
SortOrder
.
DESC
).
setFrom
(
0
).
setSize
(
count
);
SearchRequestBuilder
searchRequestBuilder
=
transportClient
.
prepareSearch
(
"zhihu*"
).
setTypes
(
"zhihu"
)
.
highlighter
(
highlightBuilder
).
setQuery
(
boolQueryBuilder
).
addSort
(
"rsid"
,
SortOrder
.
DESC
).
setFrom
(
0
)
.
setSize
(
count
);
searchRequestBuilder
.
setPostFilter
(
QueryBuilders
.
rangeQuery
(
"insert_at"
).
from
(
stime
).
to
(
etime
));
SearchResponse
response
=
searchRequestBuilder
.
execute
().
actionGet
();
...
...
@@ -337,9 +353,9 @@ public class ESDaoImpl implements ESDao {
String
[]
indexlist
=
list
.
toArray
(
new
String
[
list
.
size
()]);
SearchRequestBuilder
searchRequestBuilder
=
transportClient
.
prepareSearch
(
indexlist
)
.
setTypes
(
ESConfig
.
videoType
).
highlighter
(
highlightBuilder
).
setQuery
(
boolQueryBuilder
)
.
addSort
(
"rsid"
,
SortOrder
.
DESC
).
setFrom
(
0
).
setSize
(
count
);
SearchRequestBuilder
searchRequestBuilder
=
transportClient
.
prepareSearch
(
indexlist
)
.
setTypes
(
"video"
)
.
highlighter
(
highlightBuilder
).
setQuery
(
boolQueryBuilder
).
addSort
(
"rsid"
,
SortOrder
.
DESC
).
setFrom
(
0
)
.
setSize
(
count
);
searchRequestBuilder
.
setPostFilter
(
QueryBuilders
.
rangeQuery
(
"time"
).
from
(
stime
).
to
(
etime
));
...
...
@@ -390,8 +406,16 @@ public class ESDaoImpl implements ESDao {
}
else
if
(
platform
.
equals
(
"报刊"
))
{
boolQueryBuilder
.
must
(
QueryBuilders
.
matchPhraseQuery
(
"type"
,
"平媒"
));
}
else
if
(
platform
.
equals
(
"今日头条"
))
{
boolQueryBuilder
.
must
(
QueryBuilders
.
boolQuery
().
must
(
QueryBuilders
.
matchPhraseQuery
(
"type"
,
"今日头条"
))
.
must
(
QueryBuilders
.
existsQuery
(
"spyderInfoId"
)));
// boolQueryBuilder.must(QueryBuilders.boolQuery().must(QueryBuilders.matchPhraseQuery("type",
// "今日头条"))
// .must(QueryBuilders.existsQuery("spyderInfoId")));
BoolQueryBuilder
booljrQueryBuilder1
=
QueryBuilders
.
boolQuery
();
BoolQueryBuilder
booljrQueryBuilder2
=
QueryBuilders
.
boolQuery
();
booljrQueryBuilder1
.
must
(
QueryBuilders
.
matchPhraseQuery
(
"type"
,
"今日头条"
))
.
must
(
QueryBuilders
.
existsQuery
(
"spyderInfoId"
));
booljrQueryBuilder2
.
must
(
QueryBuilders
.
matchPhraseQuery
(
"type"
,
"今日头条"
))
.
must
(
QueryBuilders
.
existsQuery
(
"crawlerV"
));
boolQueryBuilder
.
must
(
QueryBuilders
.
boolQuery
().
should
(
booljrQueryBuilder1
).
should
(
booljrQueryBuilder2
));
}
else
if
(
platform
.
equals
(
"客户端"
))
{
boolQueryBuilder
.
must
(
QueryBuilders
.
boolQuery
().
should
(
QueryBuilders
.
wildcardQuery
(
"type"
,
"*客户端"
))
.
should
(
QueryBuilders
.
matchPhraseQuery
(
"type"
,
"脉脉"
)));
...
...
src/main/java/com/zhiwei/messageflow/es/service/impl/HighLightFillingServiceImpl.java
View file @
618b8f3b
...
...
@@ -40,7 +40,6 @@ public class HighLightFillingServiceImpl implements HighLightFillingService {
@Override
public
WeiboMessage
getWeiboBean
(
SearchHit
searchHit
)
{
/**
* ES数据读取
*/
...
...
src/main/java/com/zhiwei/messageflow/es/service/impl/NoiseProcessingServiceImpl.java
View file @
618b8f3b
...
...
@@ -21,7 +21,7 @@ import com.zhiwei.messageflow.mongo.bean.NoiseRule;
public
class
NoiseProcessingServiceImpl
implements
NoiseProcessingService
{
@Autowired
HighLightFillingService
highLightFillingService
;
private
HighLightFillingService
highLightFillingService
;
@Override
public
List
<
WeiboMessage
>
weiboDenoising
(
List
<
NoiseRule
>
noiseRules
,
SearchHits
searchHits
,
String
platform
,
...
...
src/main/java/com/zhiwei/messageflow/es/service/impl/TrackHitAndWarnServiceImpl.java
View file @
618b8f3b
...
...
@@ -8,6 +8,8 @@ import java.util.Map;
import
org.elasticsearch.search.SearchHit
;
import
org.elasticsearch.search.SearchHits
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
...
...
@@ -23,6 +25,8 @@ import com.zhiwei.messageflow.util.TimeUtil;
@Component
public
class
TrackHitAndWarnServiceImpl
implements
TrackHitAndWarnService
{
private
final
static
Logger
log
=
LoggerFactory
.
getLogger
(
TrackHitAndWarnServiceImpl
.
class
);
@Autowired
private
TrackESDao
trackESDao
;
...
...
@@ -231,14 +235,14 @@ public class TrackHitAndWarnServiceImpl implements TrackHitAndWarnService {
result
=
userMailService
.
sendMailByProject
(
projectName
,
templateData
);
if
((
result
.
get
(
"message"
)
+
""
).
equals
(
"用户组邮件发送成功"
))
{
System
.
out
.
println
(
"发送邮件预警成功"
);
log
.
info
(
"发送邮件预警成功"
);
trackRule
.
setWarn
(
true
);
trackRuleDao
.
updateTrackrule
(
trackRule
.
get_id
());
break
;
}
else
if
((
result
.
get
(
"message"
)
+
""
).
equals
(
"用户组邮箱未获取到"
))
{
System
.
out
.
println
(
"发送邮件预警失败,用户获取问题"
);
log
.
error
(
"发送邮件预警失败,用户获取问题"
);
}
else
{
System
.
out
.
println
(
"本次部分条发送失败"
);
log
.
error
(
"本次部分条发送失败"
);
trackRule
.
setWarn
(
true
);
trackRuleDao
.
updateTrackrule
(
trackRule
.
get_id
());
break
;
...
...
src/main/java/com/zhiwei/messageflow/getmessage/MatchingInfo.java
View file @
618b8f3b
...
...
@@ -73,7 +73,6 @@ public class MatchingInfo {
weibo
.
setUrl
(
map
.
get
(
"url"
).
toString
());
if
(
map
.
get
(
"time"
)
!=
null
)
weibo
.
setTime
(
map
.
get
(
"time"
).
toString
());
System
.
out
.
println
(
weibo
.
toString
());
weibos
.
add
(
weibo
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
...
...
@@ -123,7 +122,6 @@ public class MatchingInfo {
Date
d
=
sdf
.
parse
(
map
.
get
(
"created_at"
).
toString
());
zhihuInfo
.
setInsert_at
(
d
);
}
System
.
out
.
println
(
zhihuInfo
.
toString
());
zhihuInfos
.
add
(
zhihuInfo
);
}
catch
(
IOException
|
ParseException
e
)
{
e
.
printStackTrace
();
...
...
@@ -157,7 +155,6 @@ public class MatchingInfo {
Date
d
=
sdf
.
parse
(
map
.
get
(
"time"
).
toString
());
video
.
setTime
(
d
);
}
System
.
out
.
println
(
video
.
toString
());
videos
.
add
(
video
);
}
catch
(
IOException
|
ParseException
e
)
{
e
.
printStackTrace
();
...
...
@@ -186,6 +183,8 @@ public class MatchingInfo {
media
.
setTitle
(
map
.
get
(
"title"
).
toString
());
if
(
map
.
get
(
"source"
)
!=
null
)
media
.
setSource
(
map
.
get
(
"source"
).
toString
());
if
(
map
.
get
(
"crawlerV"
)
!=
null
)
media
.
setCrawlerV
(
map
.
get
(
"crawlerV"
).
toString
());
if
(
map
.
get
(
"content"
)
!=
null
)
media
.
setContent
(
map
.
get
(
"content"
).
toString
());
if
(
map
.
get
(
"channelIndex"
)
!=
null
)
...
...
@@ -194,7 +193,6 @@ public class MatchingInfo {
Date
d
=
sdf
.
parse
(
map
.
get
(
"time"
).
toString
());
media
.
setTime
(
d
);
}
System
.
out
.
println
(
media
.
toString
());
medias
.
add
(
media
);
}
catch
(
IOException
|
ParseException
e
)
{
e
.
printStackTrace
();
...
...
src/main/java/com/zhiwei/messageflow/getmessage/bean/Media.java
View file @
618b8f3b
...
...
@@ -27,4 +27,5 @@ public class Media {
private
String
dangerLevel
;
// 危险等级
private
String
markGroup
;
// 标记组
private
String
markPerson
;
// 标记人
private
String
crawlerV
;
}
src/main/java/com/zhiwei/messageflow/mail/MailSenderInfo.java
View file @
618b8f3b
...
...
@@ -4,25 +4,48 @@ import java.util.Properties;
public
class
MailSenderInfo
{
// 发送服务器的IP和端口
/**
* 发送服务器的IP和端口
*/
private
String
mailServerHost
;
private
String
mailServerPort
=
"25"
;
// 邮件发送者地址
/**
* 邮件发送者地址
*/
private
String
fromAddress
;
private
String
nickName
;
// 邮件接受者的地址
/**
* 邮件接受者的地址
*/
private
String
toAddress
;
// 登录邮件发送服务器的用户名和密码
/**
* 登录邮件发送服务器的用户名和密码
*/
private
String
userName
;
private
String
password
;
// 是否需要身份验证
/**
* 是否需要身份验证
*/
private
boolean
validate
=
false
;
// 邮件主题
/**
* 邮件主题
*/
private
String
subject
;
// 邮件的文本内容
/**
* 邮件的文本内容
*/
private
String
content
;
// 邮件附件的文件名
/**
* 邮件附件的文件名
*/
private
String
[]
attachFileNames
;
/*
...
...
src/main/java/com/zhiwei/messageflow/mail/MyAuthenticator.java
View file @
618b8f3b
...
...
@@ -3,26 +3,28 @@ package com.zhiwei.messageflow.mail;
import
javax.mail.Authenticator
;
import
javax.mail.PasswordAuthentication
;
public
class
MyAuthenticator
extends
Authenticator
{
String
userName
=
null
;
//用户名
String
password
=
null
;
//密码
public
class
MyAuthenticator
extends
Authenticator
{
String
userName
=
null
;
// 用户名
String
password
=
null
;
// 密码
/*
* 无参构造
*/
public
MyAuthenticator
(){}
public
MyAuthenticator
()
{
}
/*
*
代
参构造
*
带
参构造
*/
public
MyAuthenticator
(
String
username
,
String
cs
)
{
this
.
userName
=
username
;
this
.
password
=
cs
;
public
MyAuthenticator
(
String
username
,
String
cs
)
{
this
.
userName
=
username
;
this
.
password
=
cs
;
}
/*
*
*/
protected
PasswordAuthentication
getPasswordAuthentication
(){
return
new
PasswordAuthentication
(
userName
,
password
);
protected
PasswordAuthentication
getPasswordAuthentication
()
{
return
new
PasswordAuthentication
(
userName
,
password
);
}
}
src/main/java/com/zhiwei/messageflow/mail/SendMail.java
View file @
618b8f3b
...
...
@@ -34,39 +34,6 @@ public class SendMail {
return
f
;
}
// /**
// * @Title: sendMailBriefing
// * @Description: TODO(发送舆情简报)
// * @param email
// * @param mailTitle 邮件标题
// * @param briefs
// * @return 设定文件
// * @date 2017年11月16日 下午5:48:14
// * @return boolean 返回类型
// */
// public static boolean sendMailBriefing(String email, String
// mailTitle,List<Brief> briefs) {
// // 这个类主要是设置邮件
// MailSenderInfo mailInfo = new MailSenderInfo();
// mailInfo.setMailServerHost("smtp.ym.163.com");
// // mailInfo.setMailServerHost("smtp.163.com");
// mailInfo.setMailServerPort("25");
// mailInfo.setValidate(true);
// mailInfo.setUserName("qbjcyj@zhiweidata.com");
// mailInfo.setPassword("1q2w3e4r");// 您的邮箱密码
// mailInfo.setFromAddress("qbjcyj@zhiweidata.com");
// mailInfo.setNickName("知微情报监测服务");
//
// boolean f = false;
// mailInfo.setToAddress(email);
// mailInfo.setSubject(mailTitle);
//
// mailInfo.setContent(mailContent(briefs));
// // 这个类主要来发送邮件
// f = SimpleMailSender.sendHtmlMail(mailInfo);// 发送文体格式
// return f;
// }
/**
*
* @Title: mailContent
...
...
@@ -131,34 +98,6 @@ public class SendMail {
return
sb
.
toString
();
}
// /**
// *
// * @Title: mailContent
// * @Description: TODO(拼接所发邮件内容)
// * @param templateData
// * @return 设定文件
// * @date 2017年11月8日 下午4:29:41
// * @return String 返回类型
// */
// private static String mailContent(List<Brief> briefs) {
// StringBuffer sb = new StringBuffer();
//
// Brief brief;
// for (int i = 0; i < briefs.size(); i++) {
// brief = briefs.get(i);
// sb.append("<div><B>" +getHotLink(brief.getTitle(), brief.getUrl())
// +"</B></div><br>");
// sb.append("<div>" + brief.getDetails() + "</div><br>");
// sb.append("<br>");
// }
// sb.append("<div>Best Regards,</div>");
// sb.append("<div>知微——情报监测</div>");
// sb.append("<style>*{ font-size:18px} *{font-family:Microsoft
// YaHei;}</style>");
//
// return sb.toString();
// }
/**
* @Title: getHotLink
* @Description: TODO(这里用一句话描述这个方法的作用)
...
...
src/main/java/com/zhiwei/messageflow/mongo/config/PrimaryMongoConfig.java
View file @
618b8f3b
...
...
@@ -8,7 +8,7 @@ import org.springframework.data.mongodb.core.MongoTemplate;
@Configuration
@ConfigurationProperties
(
prefix
=
"spring.data.mongodb.primary"
)
public
class
PrimaryMongoConfig
extends
AbstractMongoConfig
{
public
class
PrimaryMongoConfig
extends
AbstractMongoConfig
{
@Primary
@Override
...
...
src/main/java/com/zhiwei/messageflow/mongo/config/ThirdaryMongoConfig.java
View file @
618b8f3b
...
...
@@ -7,7 +7,7 @@ import org.springframework.data.mongodb.core.MongoTemplate;
@Configuration
@ConfigurationProperties
(
prefix
=
"spring.data.mongodb.thirdary"
)
public
class
ThirdaryMongoConfig
extends
AbstractMongoConfig
{
public
class
ThirdaryMongoConfig
extends
AbstractMongoConfig
{
@Override
public
@Bean
(
name
=
"thirdaryMongoTemplate"
)
MongoTemplate
getMongoTemplate
()
throws
Exception
{
...
...
src/main/java/com/zhiwei/messageflow/mongo/dao/HuserInfoDao.java
View file @
618b8f3b
src/main/java/com/zhiwei/messageflow/mongo/dao/PlatformDao.java
View file @
618b8f3b
src/main/java/com/zhiwei/messageflow/mongo/dao/ProjectDao.java
View file @
618b8f3b
src/main/java/com/zhiwei/messageflow/mongo/dao/TrackRuleDao.java
View file @
618b8f3b
src/main/java/com/zhiwei/messageflow/mongo/dao/UserWechatDao.java
View file @
618b8f3b
src/main/java/com/zhiwei/messageflow/mongo/service/UserMailService.java
View file @
618b8f3b
...
...
@@ -5,5 +5,13 @@ import java.util.Map;
import
com.zhiwei.messageflow.es.bean.TemplateData
;
public
interface
UserMailService
{
Map
<
String
,
Object
>
sendMailByProject
(
String
project
,
TemplateData
templateData
);
/**
* 发送邮件
*
* @param project
* @param templateData
* @return
*/
Map
<
String
,
Object
>
sendMailByProject
(
String
project
,
TemplateData
templateData
);
}
src/main/java/com/zhiwei/messageflow/mongo/service/WechatSendService.java
View file @
618b8f3b
...
...
@@ -6,6 +6,7 @@ import com.zhiwei.messageflow.mongo.bean.WechatCode;
import
net.sf.json.JSONObject
;
public
interface
WechatSendService
{
int
sendTemplateByProject
(
String
projectName
,
TemplateData
templateData
);
int
sendDataJson
(
WechatCode
wechatCode
,
JSONObject
dataJson
);
...
...
src/main/java/com/zhiwei/messageflow/mongo/service/impl/UserMailServiceImpl.java
View file @
618b8f3b
...
...
@@ -17,19 +17,23 @@ import com.zhiwei.messageflow.mongo.service.UserMailService;
@Component
public
class
UserMailServiceImpl
implements
UserMailService
{
@SuppressWarnings
(
"unused"
)
@Autowired
private
UserMailDao
userMailDao
;
@Override
public
Map
<
String
,
Object
>
sendMailByProject
(
String
project
,
TemplateData
templateData
)
{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
// List<UserMail> mails = userMailDao.findUserMailByProject(project);
List
<
UserMail
>
mails
=
new
ArrayList
<>();
UserMail
mail
=
new
UserMail
();
mail
.
setAddress
(
"1454551152@qq.com"
);
mail
.
setProject
(
"腾讯"
);
mails
.
add
(
mail
);
List
<
UserMail
>
mails
=
userMailDao
.
findUserMailByProject
(
project
);
/**
* 本地测试
*/
// List<UserMail> mails = new ArrayList<>();
// UserMail mail = new UserMail();
// mail.setAddress("1454551152@qq.com");
// mail.setProject("腾讯");
// mails.add(mail);
List
<
String
>
failMails
=
new
ArrayList
<>();
int
success
=
0
;
for
(
UserMail
userMail
:
mails
)
{
...
...
src/main/java/com/zhiwei/messageflow/mongo/service/impl/WechatSendServiceImpl.java
View file @
618b8f3b
package
com
.
zhiwei
.
messageflow
.
mongo
.
service
.
impl
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -31,19 +30,21 @@ public class WechatSendServiceImpl implements WechatSendService {
@Autowired
private
WechatCodeDao
wechatCodeDao
;
@SuppressWarnings
(
"unused"
)
@Autowired
private
UserWechatDao
userWechatDao
;
@SuppressWarnings
(
"unused"
)
@Override
public
int
sendTemplateByProject
(
String
projectName
,
TemplateData
templateData
)
{
WechatCode
wechatCode
=
wechatCodeDao
.
getWechatCodeByAppId
(
WechatConstant
.
WECHAT_APPID
);
// List<UserWechat> userWechats=userWechatDao.getUserWechatByProject(projectName);
List
<
UserWechat
>
userWechats
=
new
ArrayList
<>();
UserWechat
userWechat1
=
new
UserWechat
();
userWechat1
.
setOpenid
(
"o_J5m0b9Un5rRfUXZS5S3kKjkzeo"
);
userWechats
.
add
(
userWechat1
);
WechatCode
wechatCode
=
wechatCodeDao
.
getWechatCodeByAppId
(
WechatConstant
.
WECHAT_APPID
);
List
<
UserWechat
>
userWechats
=
userWechatDao
.
getUserWechatByProject
(
projectName
);
/**
* 本地测试
*/
// List<UserWechat> userWechats = new ArrayList<>();
// UserWechat userWechat1 = new UserWechat();
// userWechat1.setOpenid("o_J5m0b9Un5rRfUXZS5S3kKjkzeo");
// userWechats.add(userWechat1);
if
(
null
==
userWechats
)
{
log
.
error
(
"未获取到UserWechat,查询依据【{}】"
,
projectName
);
...
...
src/main/java/com/zhiwei/messageflow/redis/RedisPoolAndTools.java
View file @
618b8f3b
...
...
@@ -35,7 +35,7 @@ public class RedisPoolAndTools {
config
.
setMaxWaitMillis
(
redisConfig
.
getMaxWaitMillis
());
config
.
setTestOnBorrow
(
redisConfig
.
isTestOnBorrow
());
config
.
setTestOnReturn
(
redisConfig
.
isTestOnReturn
());
pool
=
new
JedisPool
(
config
,
redisConfig
.
getIp
(),
redisConfig
.
getPort
(),
0
,
null
,
redisConfig
.
getSelectDB
());
pool
=
new
JedisPool
(
config
,
redisConfig
.
getIp
(),
redisConfig
.
getPort
(),
0
,
redisConfig
.
getPassword
()
,
redisConfig
.
getSelectDB
());
}
/**
...
...
@@ -45,34 +45,21 @@ public class RedisPoolAndTools {
*/
private
Jedis
getJedis
()
{
// 连接请求次数
int
timeoutCount
=
0
;
if
(
null
==
pool
)
{
initializePool
();
}
while
(
true
)
{
try
{
if
(
null
!=
pool
)
{
return
pool
.
getResource
();
}
}
catch
(
Exception
e
)
{
if
(
e
instanceof
JedisConnectionException
)
{
timeoutCount
++;
log
.
warn
(
"jedis连接请求次数{}"
,
timeoutCount
);
if
(
timeoutCount
>
3
)
{
break
;
}
}
else
{
log
.
warn
(
"jedisInfo ... NumActive="
+
pool
.
getNumActive
()
+
", NumIdle="
+
pool
.
getNumIdle
()
+
", NumWaiters="
+
pool
.
getNumWaiters
()
+
", isClosed="
+
pool
.
isClosed
());
log
.
error
(
"获取jedis连接错误:{}"
,
e
.
getMessage
());
break
;
}
}
break
;
}
//请求jedis完成
}
// 请求jedis完成
return
null
;
}
...
...
src/main/java/com/zhiwei/messageflow/redis/service/impl/RedisServiceImpl.java
View file @
618b8f3b
...
...
@@ -22,7 +22,7 @@ public class RedisServiceImpl implements RedisService {
@Autowired
private
RedisPoolAndTools
redisPoolAndTools
;
static
ObjectMapper
mapper
=
new
ObjectMapper
();
static
ObjectMapper
mapper
=
new
ObjectMapper
();
static
{
mapper
.
setSerializationInclusion
(
Include
.
NON_EMPTY
);
...
...
src/main/java/com/zhiwei/messageflow/service/DisposeMessageService.java
View file @
618b8f3b
...
...
@@ -3,7 +3,6 @@ package com.zhiwei.messageflow.service;
import
java.util.List
;
import
com.zhiwei.messageflow.mongo.bean.NoiseRule
;
import
com.zhiwei.messageflow.mongo.bean.TrackRule
;
import
com.zhiwei.messageflow.redis.bean.RsidAndMessages
;
public
interface
DisposeMessageService
{
...
...
@@ -11,8 +10,6 @@ public interface DisposeMessageService {
/**
* 获取微博平台RsidAndMessages
*
* @param trackRules
* 预警规则
* @param noiseRules
* 去噪规则
* @param keywords
...
...
@@ -29,14 +26,12 @@ public interface DisposeMessageService {
* 项目
* @return
*/
RsidAndMessages
getFilteredWeiboMessage
(
List
<
TrackRule
>
trackRules
,
List
<
NoiseRule
>
noiseRules
,
L
ist
<
String
>
keywords
,
int
count
,
Long
startid
,
L
ong
endid
,
String
platform
,
String
project
);
RsidAndMessages
getFilteredWeiboMessage
(
List
<
NoiseRule
>
noiseRules
,
List
<
String
>
keywords
,
int
count
,
Long
startid
,
Long
endid
,
String
platform
,
String
project
);
/**
* 获取知乎平台RsidAndMessages
*
* @param trackRules
* 预警规则
* @param noiseRules
* 去噪规则
* @param keywords
...
...
@@ -53,14 +48,12 @@ public interface DisposeMessageService {
* 项目
* @return
*/
RsidAndMessages
getFilteredZhihuMessage
(
List
<
TrackRule
>
trackRules
,
List
<
NoiseRule
>
noiseRules
,
L
ist
<
String
>
keywords
,
int
count
,
Long
startid
,
L
ong
endid
,
String
platform
,
String
project
);
RsidAndMessages
getFilteredZhihuMessage
(
List
<
NoiseRule
>
noiseRules
,
List
<
String
>
keywords
,
int
count
,
Long
startid
,
Long
endid
,
String
platform
,
String
project
);
/**
* 获取视频平台RsidAndMessages
*
* @param trackRules
* 预警规则
* @param noiseRules
* 去噪规则
* @param keywords
...
...
@@ -77,14 +70,12 @@ public interface DisposeMessageService {
* 项目
* @return
*/
RsidAndMessages
getFilteredVideoMessage
(
List
<
TrackRule
>
trackRules
,
List
<
NoiseRule
>
noiseRules
,
L
ist
<
String
>
keywords
,
int
count
,
Long
startid
,
L
ong
endid
,
String
platform
,
String
project
);
RsidAndMessages
getFilteredVideoMessage
(
List
<
NoiseRule
>
noiseRules
,
List
<
String
>
keywords
,
int
count
,
Long
startid
,
Long
endid
,
String
platform
,
String
project
);
/**
* 获取网媒平台RsidAndMessages
*
* @param trackRules
* 预警规则
* @param noiseRules
* 去噪规则
* @param keywords
...
...
@@ -101,6 +92,6 @@ public interface DisposeMessageService {
* 项目
* @return
*/
RsidAndMessages
getFilteredMediaMessage
(
List
<
TrackRule
>
trackRules
,
List
<
NoiseRule
>
noiseRules
,
L
ist
<
String
>
keywords
,
int
count
,
Long
startid
,
L
ong
endid
,
String
platform
,
String
project
);
RsidAndMessages
getFilteredMediaMessage
(
List
<
NoiseRule
>
noiseRules
,
List
<
String
>
keywords
,
int
count
,
Long
startid
,
Long
endid
,
String
platform
,
String
project
);
}
src/main/java/com/zhiwei/messageflow/service/impl/DisposeMessageServiceImpl.java
View file @
618b8f3b
...
...
@@ -14,7 +14,6 @@ import com.zhiwei.messageflow.bean.WeiboMessage;
import
com.zhiwei.messageflow.bean.ZhihuMessage
;
import
com.zhiwei.messageflow.es.service.ES4BeanService
;
import
com.zhiwei.messageflow.mongo.bean.NoiseRule
;
import
com.zhiwei.messageflow.mongo.bean.TrackRule
;
import
com.zhiwei.messageflow.redis.bean.RsidAndMessages
;
import
com.zhiwei.messageflow.service.DisposeMessageService
;
...
...
@@ -27,8 +26,8 @@ public class DisposeMessageServiceImpl implements DisposeMessageService {
private
ES4BeanService
es4BeanDao
;
@Override
public
RsidAndMessages
getFilteredWeiboMessage
(
List
<
TrackRule
>
trackRules
,
List
<
NoiseRule
>
noiseRules
,
L
ist
<
String
>
keywords
,
int
count
,
L
ong
startid
,
Long
endid
,
String
platform
,
String
project
)
{
public
RsidAndMessages
getFilteredWeiboMessage
(
List
<
NoiseRule
>
noiseRules
,
List
<
String
>
keywords
,
int
count
,
Long
startid
,
Long
endid
,
String
platform
,
String
project
)
{
RsidAndMessages
ram
=
new
RsidAndMessages
();
...
...
@@ -39,7 +38,7 @@ public class DisposeMessageServiceImpl implements DisposeMessageService {
/**
* 获取最后消息的rsid
*/
if
(
messages
!=
null
&&
!
messages
.
isEmpty
())
{
if
(
messages
!=
null
&&
!
messages
.
isEmpty
())
{
WeiboMessage
wmf
=
messages
.
get
(
0
);
WeiboMessage
wml
=
messages
.
get
(
messages
.
size
()
-
1
);
ram
.
setWlist
(
messages
);
...
...
@@ -50,8 +49,8 @@ public class DisposeMessageServiceImpl implements DisposeMessageService {
}
@Override
public
RsidAndMessages
getFilteredZhihuMessage
(
List
<
TrackRule
>
trackRules
,
List
<
NoiseRule
>
noiseRules
,
L
ist
<
String
>
keywords
,
int
count
,
L
ong
startid
,
Long
endid
,
String
platform
,
String
project
)
{
public
RsidAndMessages
getFilteredZhihuMessage
(
List
<
NoiseRule
>
noiseRules
,
List
<
String
>
keywords
,
int
count
,
Long
startid
,
Long
endid
,
String
platform
,
String
project
)
{
RsidAndMessages
ram
=
new
RsidAndMessages
();
// 消息列表
...
...
@@ -61,7 +60,7 @@ public class DisposeMessageServiceImpl implements DisposeMessageService {
/**
* 获取最后消息的rsid
*/
if
(
messages
!=
null
&&
!
messages
.
isEmpty
())
{
if
(
messages
!=
null
&&
!
messages
.
isEmpty
())
{
ZhihuMessage
zmf
=
messages
.
get
(
0
);
ZhihuMessage
zml
=
messages
.
get
(
messages
.
size
()
-
1
);
ram
.
setZlist
(
messages
);
...
...
@@ -72,8 +71,8 @@ public class DisposeMessageServiceImpl implements DisposeMessageService {
}
@Override
public
RsidAndMessages
getFilteredVideoMessage
(
List
<
TrackRule
>
trackRules
,
List
<
NoiseRule
>
noiseRules
,
L
ist
<
String
>
keywords
,
int
count
,
L
ong
startid
,
Long
endid
,
String
platform
,
String
project
)
{
public
RsidAndMessages
getFilteredVideoMessage
(
List
<
NoiseRule
>
noiseRules
,
List
<
String
>
keywords
,
int
count
,
Long
startid
,
Long
endid
,
String
platform
,
String
project
)
{
RsidAndMessages
ram
=
new
RsidAndMessages
();
// 消息列表
...
...
@@ -83,7 +82,7 @@ public class DisposeMessageServiceImpl implements DisposeMessageService {
/**
* 获取最后消息的rsid
*/
if
(
messages
!=
null
&&
!
messages
.
isEmpty
())
{
if
(
messages
!=
null
&&
!
messages
.
isEmpty
())
{
VideoMessage
vmf
=
messages
.
get
(
0
);
VideoMessage
vml
=
messages
.
get
(
messages
.
size
()
-
1
);
ram
.
setVlist
(
messages
);
...
...
@@ -94,8 +93,8 @@ public class DisposeMessageServiceImpl implements DisposeMessageService {
}
@Override
public
RsidAndMessages
getFilteredMediaMessage
(
List
<
TrackRule
>
trackRules
,
List
<
NoiseRule
>
noiseRules
,
L
ist
<
String
>
keywords
,
int
count
,
L
ong
startid
,
Long
endid
,
String
platform
,
String
project
)
{
public
RsidAndMessages
getFilteredMediaMessage
(
List
<
NoiseRule
>
noiseRules
,
List
<
String
>
keywords
,
int
count
,
Long
startid
,
Long
endid
,
String
platform
,
String
project
)
{
RsidAndMessages
ram
=
new
RsidAndMessages
();
// 消息列表
...
...
@@ -105,7 +104,7 @@ public class DisposeMessageServiceImpl implements DisposeMessageService {
/**
* 获取最后消息的rsid
*/
if
(
messages
!=
null
&&
!
messages
.
isEmpty
())
{
if
(
messages
!=
null
&&
!
messages
.
isEmpty
())
{
MediaMessage
mmf
=
messages
.
get
(
0
);
MediaMessage
mml
=
messages
.
get
(
messages
.
size
()
-
1
);
ram
.
setMlist
(
messages
);
...
...
src/main/java/com/zhiwei/messageflow/test/GetMessage.java
View file @
618b8f3b
src/main/java/com/zhiwei/messageflow/util/CommonUtils.java
View file @
618b8f3b
...
...
@@ -3,36 +3,33 @@ package com.zhiwei.messageflow.util;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
public
final
class
CommonUtils
{
public
final
class
CommonUtils
{
private
final
static
Log
log
=
LogFactory
.
getLog
(
CommonUtils
.
class
);
/**
* 字符串转化为整形,若字符串非法,则返回0
*
* @param str 字符串
* @param str
* 字符串
* @return 整形结果
*/
public
static
int
strToInt
(
String
str
)
{
public
static
int
strToInt
(
String
str
)
{
return
strToIntDef
(
str
,
0
);
}
/**
* 字符串转化为整形
*
* @param str 字符串
* @param def 默认值(若为非法字符串是提供的返回值)
* @param str
* 字符串
* @param def
* 默认值(若为非法字符串是提供的返回值)
* @return 整形结果
*/
public
static
int
strToIntDef
(
String
str
,
int
def
)
{
try
{
public
static
int
strToIntDef
(
String
str
,
int
def
)
{
try
{
return
Integer
.
parseInt
(
str
);
}
catch
(
NumberFormatException
e
)
{
}
catch
(
NumberFormatException
e
)
{
if
(
log
.
isDebugEnabled
())
log
.
error
(
"[CommonUtils][strToIntDef(String, int)] NumberFormatException: "
+
str
,
e
);
return
def
;
...
...
@@ -42,29 +39,27 @@ public final class CommonUtils
/**
* 字符串转化为长整形,若字符串非法,则返回0
*
* @param str 字符串
* @param str
* 字符串
* @return 长整形结果
*/
public
static
long
strToLong
(
String
str
)
{
public
static
long
strToLong
(
String
str
)
{
return
strToLongDef
(
str
,
0
);
}
/**
* 字符串转化为长整形,若字符串非法,则返回0
*
* @param str 字符串
* @param def 默认值(若为非法字符串是提供的返回值)
* @param str
* 字符串
* @param def
* 默认值(若为非法字符串是提供的返回值)
* @return 长整形结果
*/
public
static
long
strToLongDef
(
String
str
,
long
def
)
{
try
{
public
static
long
strToLongDef
(
String
str
,
long
def
)
{
try
{
return
Long
.
parseLong
(
str
);
}
catch
(
NumberFormatException
e
)
{
}
catch
(
NumberFormatException
e
)
{
if
(
log
.
isDebugEnabled
())
log
.
error
(
"[CommonUtils][strToLong(String, long)] NumberFormatException: "
+
str
,
e
);
return
def
;
...
...
@@ -74,18 +69,15 @@ public final class CommonUtils
/**
* 判断是否是大整形格式(@see ava.math.BigDecimal)
*
* @param input 数字格式字符串
* @param input
* 数字格式字符串
* @return
*/
public
static
boolean
isBigDecimal
(
String
input
)
{
try
{
public
static
boolean
isBigDecimal
(
String
input
)
{
try
{
new
java
.
math
.
BigDecimal
(
input
);
return
true
;
}
catch
(
NumberFormatException
e
)
{
}
catch
(
NumberFormatException
e
)
{
if
(
log
.
isDebugEnabled
())
log
.
error
(
"[CommonUtils][isBigDecimal(String)] Exception: "
+
input
,
e
);
return
false
;
...
...
@@ -95,18 +87,15 @@ public final class CommonUtils
/**
* 判断是否是整形格式
*
* @param input 数字字符
* @param input
* 数字字符
* @return
*/
public
static
boolean
isInteger
(
String
input
)
{
try
{
public
static
boolean
isInteger
(
String
input
)
{
try
{
Integer
.
parseInt
(
input
);
return
true
;
}
catch
(
NumberFormatException
e
)
{
}
catch
(
NumberFormatException
e
)
{
if
(
log
.
isDebugEnabled
())
log
.
error
(
"[CommonUtils][strToLong(String)] NumberFormatException: "
+
input
,
e
);
...
...
@@ -114,8 +103,7 @@ public final class CommonUtils
}
}
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
}
}
src/main/java/com/zhiwei/messageflow/util/HttpRequest.java
View file @
618b8f3b
package
com
.
zhiwei
.
messageflow
.
util
;
import
java.io.BufferedReader
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
...
...
@@ -36,8 +37,7 @@ public class HttpRequest {
* 提交的数据
* @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)
*/
public
static
JSONObject
httpRequest
(
String
requestUrl
,
String
requestMethod
,
String
outputStr
)
{
public
static
JSONObject
httpRequest
(
String
requestUrl
,
String
requestMethod
,
String
outputStr
)
{
JSONObject
jsonObject
=
null
;
StringBuffer
buffer
=
new
StringBuffer
();
try
{
...
...
@@ -49,8 +49,7 @@ public class HttpRequest {
SSLSocketFactory
ssf
=
sslContext
.
getSocketFactory
();
URL
url
=
new
URL
(
requestUrl
);
HttpsURLConnection
httpUrlConn
=
(
HttpsURLConnection
)
url
.
openConnection
();
HttpsURLConnection
httpUrlConn
=
(
HttpsURLConnection
)
url
.
openConnection
();
httpUrlConn
.
setSSLSocketFactory
(
ssf
);
httpUrlConn
.
setDoOutput
(
true
);
...
...
@@ -72,10 +71,8 @@ public class HttpRequest {
// 将返回的输入流转换成字符串
InputStream
inputStream
=
httpUrlConn
.
getInputStream
();
InputStreamReader
inputStreamReader
=
new
InputStreamReader
(
inputStream
,
"utf-8"
);
BufferedReader
bufferedReader
=
new
BufferedReader
(
inputStreamReader
);
InputStreamReader
inputStreamReader
=
new
InputStreamReader
(
inputStream
,
"utf-8"
);
BufferedReader
bufferedReader
=
new
BufferedReader
(
inputStreamReader
);
String
str
=
null
;
while
((
str
=
bufferedReader
.
readLine
())
!=
null
)
{
...
...
src/main/java/com/zhiwei/messageflow/util/MyX509TrustManager.java
View file @
618b8f3b
src/main/java/com/zhiwei/messageflow/util/SerializeUtil.java
View file @
618b8f3b
...
...
@@ -11,39 +11,29 @@ import java.io.ObjectOutputStream;
* @author TangTou
*
*/
public
class
SerializeUtil
{
public
class
SerializeUtil
{
/**
* @deprecated:JDK序列化
* @param obj
* @return
*/
public
static
byte
[]
JDKserialize
(
Object
obj
)
{
public
static
byte
[]
JDKserialize
(
Object
obj
)
{
ObjectOutputStream
oos
=
null
;
ByteArrayOutputStream
baos
=
null
;
try
{
try
{
baos
=
new
ByteArrayOutputStream
();
oos
=
new
ObjectOutputStream
(
baos
);
oos
.
writeObject
(
obj
);
return
baos
.
toByteArray
();
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
return
baos
.
toByteArray
();
}
finally
{
}
finally
{
if
(
oos
!=
null
)
try
{
try
{
oos
.
close
();
baos
.
close
();
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
}
}
}
...
...
@@ -53,31 +43,21 @@ public class SerializeUtil
* @param bytes
* @return
*/
public
static
Object
JDKunserialize
(
byte
[]
bytes
)
throws
Exception
{
public
static
Object
JDKunserialize
(
byte
[]
bytes
)
throws
Exception
{
ObjectInputStream
ois
=
null
;
ByteArrayInputStream
bais
=
null
;
try
{
try
{
bais
=
new
ByteArrayInputStream
(
bytes
);
ois
=
new
ObjectInputStream
(
bais
);
return
ois
.
readObject
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
return
bais
;
}
finally
{
}
finally
{
if
(
ois
!=
null
)
try
{
try
{
ois
.
close
();
bais
.
close
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
...
...
src/main/java/com/zhiwei/messageflow/util/ThreadEndbyTimerTask.java
View file @
618b8f3b
...
...
@@ -2,7 +2,7 @@ package com.zhiwei.messageflow.util;
import
java.util.TimerTask
;
public
class
ThreadEndbyTimerTask
extends
TimerTask
{
public
class
ThreadEndbyTimerTask
extends
TimerTask
{
@Override
public
void
run
()
{
...
...
src/main/java/com/zhiwei/messageflow/util/TimeUtil.java
View file @
618b8f3b
package
com
.
zhiwei
.
messageflow
.
util
;
import
java.text.DateFormat
;
/*
* 创建日期 2006-1-12
*
* 时间运算函数
*
*/
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
...
...
@@ -20,7 +14,12 @@ import java.util.regex.Pattern;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
/*
* 创建日期 2006-1-12
*
* 时间运算函数
*
*/
/**
* @author zhengqinyong <br>
* 常用时间函数, 统一格式:日期 yyyy-MM-dd, 时间 yyyy-MM-dd HH:mm:ss
...
...
@@ -270,21 +269,17 @@ public class TimeUtil {
*
* @Title: getTimePointToNowOrEnd
* @Description: 获取开始到结束时间的时间点,按小时
* @param @return 设定文件
* @param @return
* 设定文件
* @return List<String> 返回类型
* @throws ParseException
*/
public
static
List
<
String
>
getTimePointToNowOrEnd
(
Date
startTime
,
Date
endTime
,
String
timeType
)
{
public
static
List
<
String
>
getTimePointToNowOrEnd
(
Date
startTime
,
Date
endTime
,
String
timeType
)
{
Date
start
=
startTime
;
Long
end
=
null
;
if
(
null
==
endTime
)
{
if
(
null
==
endTime
)
{
end
=
System
.
currentTimeMillis
();
}
else
{
}
else
{
end
=
endTime
.
getTime
();
}
...
...
@@ -296,22 +291,18 @@ public class TimeUtil {
// 创建完整时间点
List
<
String
>
times
=
new
ArrayList
<
String
>();
if
(
"day"
.
equals
(
timeType
))
{
while
(
flag
)
{
while
(
flag
)
{
times
.
add
(
DATE_FORMATE
.
format
(
car
.
getTime
()));
if
(
end
<=
car
.
getTimeInMillis
())
{
if
(
end
<=
car
.
getTimeInMillis
())
{
flag
=
false
;
}
car
.
add
(
Calendar
.
DAY_OF_MONTH
,
1
);
}
}
else
{
while
(
flag
)
{
}
else
{
while
(
flag
)
{
times
.
add
(
HOUR_FORMATE
.
format
(
car
.
getTime
()));
if
(
end
<=
car
.
getTimeInMillis
())
{
if
(
end
<=
car
.
getTimeInMillis
())
{
flag
=
false
;
}
car
.
add
(
Calendar
.
HOUR
,
1
);
...
...
@@ -663,7 +654,7 @@ public class TimeUtil {
}
public
static
synchronized
Date
addTimeHour
(
Date
date
,
int
hour
)
{
long
ms
=
date
.
getTime
()
+
hour
*
60
*
60
*
1000
;
long
ms
=
date
.
getTime
()
+
hour
*
60
*
60
*
1000
;
return
new
Date
(
ms
);
}
...
...
@@ -765,7 +756,7 @@ public class TimeUtil {
* @return String 返回类型
*/
@SuppressWarnings
(
"finally"
)
public
static
Date
stringFormatDate
(
String
dateStr
){
public
static
Date
stringFormatDate
(
String
dateStr
)
{
HashMap
<
String
,
String
>
dateRegFormat
=
new
HashMap
<
String
,
String
>();
dateRegFormat
.
put
(
"^\\d{4}\\D+\\d{1,2}\\D+\\d{1,2}\\D+\\d{1,2}\\D+\\d{1,2}\\D+\\d{1,2}\\D*$"
,
"yyyy-MM-dd-HH-mm-ss"
);
// 2014年3月12日 13时5分34秒,2014-03-12
...
...
@@ -810,7 +801,7 @@ public class TimeUtil {
}
}
}
catch
(
Exception
e
)
{
logger
.
info
(
"日期格式无效"
,
e
.
fillInStackTrace
());
logger
.
info
(
"日期格式无效"
,
e
.
fillInStackTrace
());
}
finally
{
return
date
;
}
...
...
src/main/resources/es.properties
View file @
618b8f3b
#es.ip=192.168.1.75
es.ip
=
1.119.44.201
#es.ip=192.168.0.234
#es.ip=115.231.214.234
...
...
src/main/resources/redis.properties
View file @
618b8f3b
...
...
@@ -3,12 +3,13 @@ redis.maxIdle=200
redis.maxWaitMillis
=
1000
redis.testOnBorrow
=
true
redis.testOnReturn
=
true
#redis.ip=127.0.0.1
#redis.ip = 192.168.0.202
#redis.ip = 202.107.192.94
#redis.ip=127.0.0.1
#redis.port=6379
redis.ip
=
192.168.1.74
redis.port
=
6388
redis.password
=
fjouero&^%^%^$*()*)))*^$$KDFJDKJF9ruorudlfdljfldjf
redis.keyMaxSize
=
5000
...
...
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