Commit 3928efeb LN

增加重复消息过滤

1 个父辈 048f26e0
...@@ -38,6 +38,20 @@ public class Message extends BasePo implements Serializable { ...@@ -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); Message message=new Message(deviceName,deviceId,module, type,msgCode,msg,msgParams,null,null,"",alarmType,alarmCode);
return message; 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;
}
/** /**
* 设备名称 * 设备名称
*/ */
......
...@@ -22,6 +22,8 @@ import org.springframework.data.mongodb.core.query.Query; ...@@ -22,6 +22,8 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -91,6 +93,10 @@ public class DeviceMessageUtil { ...@@ -91,6 +93,10 @@ public class DeviceMessageUtil {
} }
} }
Message message=Message.newMsg(msgType ,deviceInfo.getName(), deviceInfo.getId(), moudle, code,msg,msgParam); 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); messageManager.save(message);
} }
} }
...@@ -103,8 +109,11 @@ public class DeviceMessageUtil { ...@@ -103,8 +109,11 @@ public class DeviceMessageUtil {
code=MessageUtils.smfcore+"."+msgCode; code=MessageUtils.smfcore+"."+msgCode;
} }
} }
Message message=Message.newMsg(msgType ,deviceInfo.getName(), deviceInfo.getId(), moudle, code,msg,msgParam,almType,almCode); 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); messageManager.save(message);
} }
} }
...@@ -170,6 +179,37 @@ public class DeviceMessageUtil { ...@@ -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!