Commit 5281733a LN

增加重复消息过滤

1 个父辈 96a5c610
...@@ -31,6 +31,20 @@ public class Message extends BasePo implements Serializable { ...@@ -31,6 +31,20 @@ public class Message extends BasePo implements Serializable {
Message message=new Message(deviceName,deviceId,module, type,msgCode,msg,msgParams,null,null,"",errorCode); Message message=new Message(deviceName,deviceId,module, type,msgCode,msg,msgParams,null,null,"",errorCode);
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())
&&errorCode.equals(msg.getErrorCode())
){
return true;
}
return false;
}
/** /**
* 设备名称 * 设备名称
*/ */
......
...@@ -18,6 +18,10 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -18,6 +18,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.aggregation.ComparisonOperators; import org.springframework.data.mongodb.core.aggregation.ComparisonOperators;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Slf4j @Slf4j
@Component @Component
public class DeviceMessageUtil { public class DeviceMessageUtil {
...@@ -73,6 +77,37 @@ public class DeviceMessageUtil { ...@@ -73,6 +77,37 @@ public class DeviceMessageUtil {
return null; return null;
} }
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;
}
public static void addDeviceMessage(String cid,String msgType, String moudle, String msgCode, String msg, String[] msgParam,String errorCode) { public static void addDeviceMessage(String cid,String msgType, String moudle, String msgCode, String msg, String[] msgParam,String errorCode) {
DeviceInfo deviceInfo=getDeviceName(cid); DeviceInfo deviceInfo=getDeviceName(cid);
...@@ -84,7 +119,10 @@ public class DeviceMessageUtil { ...@@ -84,7 +119,10 @@ public class DeviceMessageUtil {
} }
} }
Message message=Message.newMsg(msgType ,deviceInfo.getName(), deviceInfo.getId(), moudle, code,msg,msgParam,errorCode); Message message=Message.newMsg(msgType ,deviceInfo.getName(), deviceInfo.getId(), moudle, code,msg,msgParam,errorCode);
messageManager.save(message); boolean result=msgNeedSave(message);
if(result){
messageManager.save(message);
}
} }
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!