Browse Source

改成根据 送信时间去判定数据有效

master
review512jwy@163.com 5 days ago
parent
commit
be9a2e9337
  1. 10
      src/main/java/com/techsor/datacenter/sender/service/F10Service.java

10
src/main/java/com/techsor/datacenter/sender/service/F10Service.java

@ -153,6 +153,8 @@ public class F10Service {
long receivedCurrentTs = parseToTimestamp(f10JournalLog.getReceiveDate(), f10JournalLog.getReceiveTime());
f10JournalLog.setReceiveTimestamp(receivedCurrentTs);
long sendTs = parseToTimestamp(f10JournalLog.getSendDate(), f10JournalLog.getSendTime());
String redisKey = getLatestAlarmKey(f10JournalLog.getDeviceId());
// 从 Redis 取值
String latestTsStr = redisUtils.get(redisKey);
@ -169,12 +171,12 @@ public class F10Service {
// ===== 判断逻辑 =====
if (latestTs == null) {
// 首次
redisUtils.add(redisKey, String.valueOf(receivedCurrentTs));
redisUtils.add(redisKey, String.valueOf(sendTs));
} else {
if (receivedCurrentTs > latestTs) {
if (sendTs > latestTs) {
// 新数据
redisUtils.add(redisKey, String.valueOf(receivedCurrentTs));
} else if (receivedCurrentTs == latestTs) {
redisUtils.add(redisKey, String.valueOf(sendTs));
} else if (sendTs == latestTs) {
// 重复数据 → 直接丢弃
log.warn("[F10] 重复告警, 丢弃 deviceId={}", f10JournalLog.getDeviceId());
return;

Loading…
Cancel
Save