Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 3928efeb
由
LN
编写于
2024-06-22 16:14:33 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加重复消息过滤
1 个父辈
048f26e0
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
55 行增加
和
1 行删除
src/main/java/com/neotel/smfcore/core/message/service/po/Message.java
src/main/java/com/neotel/smfcore/core/message/util/DeviceMessageUtil.java
src/main/java/com/neotel/smfcore/core/message/service/po/Message.java
查看文件 @
3928efe
...
...
@@ -38,6 +38,20 @@ public class Message extends BasePo implements Serializable {
Message
message
=
new
Message
(
deviceName
,
deviceId
,
module
,
type
,
msgCode
,
msg
,
msgParams
,
null
,
null
,
""
,
alarmType
,
alarmCode
);
return
message
;
}
public
boolean
sameMas
(
Message
msg
){
if
(
deviceName
.
equals
(
msg
.
getDeviceName
())
&&
deviceId
.
equals
(
msg
.
getDeviceId
())
&&
module
.
equals
(
msg
.
getModule
())
&&
type
.
equals
(
msg
.
getType
())
&&
getMsg
().
equals
(
msg
.
getMsg
())
&&
msgCode
.
equals
(
msg
.
getMsgCode
())
){
return
true
;
}
return
false
;
}
/**
* 设备名称
*/
...
...
src/main/java/com/neotel/smfcore/core/message/util/DeviceMessageUtil.java
查看文件 @
3928efe
...
...
@@ -22,6 +22,8 @@ import org.springframework.data.mongodb.core.query.Query;
import
org.springframework.stereotype.Component
;
import
javax.annotation.PostConstruct
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -91,6 +93,10 @@ public class DeviceMessageUtil {
}
}
Message
message
=
Message
.
newMsg
(
msgType
,
deviceInfo
.
getName
(),
deviceInfo
.
getId
(),
moudle
,
code
,
msg
,
msgParam
);
boolean
result
=
msgNeedSave
(
message
);
if
(
result
){
messageManager
.
save
(
message
);
}
messageManager
.
save
(
message
);
}
}
...
...
@@ -103,8 +109,11 @@ public class DeviceMessageUtil {
code
=
MessageUtils
.
smfcore
+
"."
+
msgCode
;
}
}
Message
message
=
Message
.
newMsg
(
msgType
,
deviceInfo
.
getName
(),
deviceInfo
.
getId
(),
moudle
,
code
,
msg
,
msgParam
,
almType
,
almCode
);
boolean
result
=
msgNeedSave
(
message
);
if
(
result
){
messageManager
.
save
(
message
);
}
messageManager
.
save
(
message
);
}
}
...
...
@@ -170,6 +179,37 @@ public class DeviceMessageUtil {
}
private
static
List
<
Message
>
messageList
=
new
ArrayList
<>();
private
synchronized
static
boolean
msgNeedSave
(
Message
message
)
{
int
TimeOutMs
=
20000
;
boolean
needSave
=
true
;
if
(
messageList
==
null
)
{
messageList
=
new
ArrayList
<>();
}
List
<
Message
>
oldMsg
=
new
ArrayList
<>();
oldMsg
.
addAll
(
messageList
);
messageList
=
new
ArrayList
<>();
message
.
setCreateDate
(
new
Date
());
for
(
Message
msg
:
oldMsg
)
{
long
ms
=
(
new
Date
()).
getTime
()
-
msg
.
getCreateDate
().
getTime
();
if
(
ms
<
TimeOutMs
)
{
if
(
msg
.
sameMas
(
message
))
{
needSave
=
false
;
messageList
.
add
(
message
);
}
else
{
messageList
.
add
(
msg
);
}
}
}
if
(
needSave
){
messageList
.
add
(
message
);
}
return
needSave
;
}
/**
* 服务器重启后,自动更新设备为离线
*/
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论