diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/listener/RedisKeyExpirationListener.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/listener/RedisKeyExpirationListener.java index 2a53c856..13f190fa 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/listener/RedisKeyExpirationListener.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/listener/RedisKeyExpirationListener.java @@ -71,6 +71,8 @@ public class RedisKeyExpirationListener implements MessageListener { deviceUpdateWrapper.eq("device_imei", element); deviceUpdateWrapper.set("online_status", 0); deviceMapper.update(deviceUpdateWrapper); + }else{ + RedisUtils.deleteObject(deviceOnlineStatusRedisKey); } } finally { //释放锁 diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/receiver/ReceiverMessageHandler.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/receiver/ReceiverMessageHandler.java index 4e4b2fc2..a99633ad 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/receiver/ReceiverMessageHandler.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/receiver/ReceiverMessageHandler.java @@ -54,7 +54,7 @@ public class ReceiverMessageHandler implements MessageHandler { RedisUtils.offerDeduplicated(queueKey,dedupKey,deviceImei, Duration.ofHours(24)); //在线状态 String deviceOnlineStatusRedisKey = GlobalConstants.GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX+ deviceImei + DeviceRedisKeyConstants.DEVICE_ONLINE_STATUS_KEY_PREFIX ; - RedisUtils.setCacheObject(deviceOnlineStatusRedisKey, "1", Duration.ofSeconds(62)); + RedisUtils.setCacheObject(deviceOnlineStatusRedisKey, "1", Duration.ofSeconds(65)); } String state = payloadDict.getStr("state"); diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/queue/MqttMessageConsumer.java b/fys-admin/src/main/java/com/fuyuanshen/global/queue/MqttMessageConsumer.java index 998695e2..4a28b63f 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/queue/MqttMessageConsumer.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/queue/MqttMessageConsumer.java @@ -98,21 +98,24 @@ public class MqttMessageConsumer { String threadName = Thread.currentThread().getName(); try { log.info("业务处理线程 {} 开始处理消息: {}", threadName, message); - String deviceOnlineStatusRedisKey = GlobalConstants.GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX+ message + DeviceRedisKeyConstants.DEVICE_ONLINE_STATUS_KEY_PREFIX ; - String deviceOnlineStatusRedis = RedisUtils.getCacheObject(deviceOnlineStatusRedisKey); - if(StringUtils.isBlank(deviceOnlineStatusRedis)){ +// String deviceOnlineStatusRedisKey = GlobalConstants.GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX+ message + DeviceRedisKeyConstants.DEVICE_ONLINE_STATUS_KEY_PREFIX ; +// String deviceOnlineStatusRedis = RedisUtils.getCacheObject(deviceOnlineStatusRedisKey); +// if(StringUtils.isBlank(deviceOnlineStatusRedis)){ +// UpdateWrapper updateWrapper = new UpdateWrapper<>(); +// updateWrapper.eq("device_imei", message) +// .set("online_status", 1); +// deviceMapper.update(updateWrapper); +// } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("device_imei", message); + queryWrapper.eq("online_status", 1); + Long count = deviceMapper.selectCount(queryWrapper); + if(count == 0){ UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("device_imei", message) .set("online_status", 1); deviceMapper.update(updateWrapper); } -// QueryWrapper queryWrapper = new QueryWrapper<>(); -// queryWrapper.eq("device_imei", message); -// queryWrapper.eq("online_status", 1); -// Long count = deviceMapper.selectCount(queryWrapper); -// if(count == 0){ -// -// } // 模拟业务处理耗时 // Thread.sleep(200);