在线状态修改2
This commit is contained in:
@ -4,6 +4,7 @@ import cn.hutool.core.thread.ThreadUtil;
|
|||||||
import com.baomidou.lock.LockInfo;
|
import com.baomidou.lock.LockInfo;
|
||||||
import com.baomidou.lock.LockTemplate;
|
import com.baomidou.lock.LockTemplate;
|
||||||
import com.baomidou.lock.executor.RedissonLockExecutor;
|
import com.baomidou.lock.executor.RedissonLockExecutor;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.fuyuanshen.common.core.constant.GlobalConstants;
|
import com.fuyuanshen.common.core.constant.GlobalConstants;
|
||||||
import com.fuyuanshen.common.redis.utils.RedisUtils;
|
import com.fuyuanshen.common.redis.utils.RedisUtils;
|
||||||
@ -69,10 +70,16 @@ public class RedisKeyExpirationListener implements MessageListener {
|
|||||||
|
|
||||||
if (lockInfo != null) {
|
if (lockInfo != null) {
|
||||||
try {
|
try {
|
||||||
UpdateWrapper<Device> deviceUpdateWrapper = new UpdateWrapper<>();
|
QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
|
||||||
deviceUpdateWrapper.eq("device_imei", element);
|
queryWrapper.eq("device_imei", element);
|
||||||
deviceUpdateWrapper.set("online_status", 0);
|
queryWrapper.eq("online_status", 0);
|
||||||
deviceMapper.update(deviceUpdateWrapper);
|
Long count = deviceMapper.selectCount(queryWrapper);
|
||||||
|
if(count == 0){
|
||||||
|
UpdateWrapper<Device> deviceUpdateWrapper = new UpdateWrapper<>();
|
||||||
|
deviceUpdateWrapper.eq("device_imei", element);
|
||||||
|
deviceUpdateWrapper.set("online_status", 0);
|
||||||
|
deviceMapper.update(deviceUpdateWrapper);
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
//释放锁
|
//释放锁
|
||||||
lockTemplate.releaseLock(lockInfo);
|
lockTemplate.releaseLock(lockInfo);
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.fuyuanshen.global.queue;
|
package com.fuyuanshen.global.queue;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.fuyuanshen.common.redis.utils.RedisUtils;
|
import com.fuyuanshen.common.redis.utils.RedisUtils;
|
||||||
import com.fuyuanshen.equipment.domain.Device;
|
import com.fuyuanshen.equipment.domain.Device;
|
||||||
@ -92,13 +93,17 @@ public class MqttMessageConsumer {
|
|||||||
String threadName = Thread.currentThread().getName();
|
String threadName = Thread.currentThread().getName();
|
||||||
try {
|
try {
|
||||||
log.info("业务处理线程 {} 开始处理消息: {}", threadName, message);
|
log.info("业务处理线程 {} 开始处理消息: {}", threadName, message);
|
||||||
|
|
||||||
// 实现具体的业务逻辑
|
QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
|
||||||
// 例如更新数据库、发送通知等
|
queryWrapper.eq("device_imei", message);
|
||||||
UpdateWrapper<Device> updateWrapper = new UpdateWrapper<>();
|
queryWrapper.eq("online_status", 1);
|
||||||
updateWrapper.eq("device_imei", message)
|
Long count = deviceMapper.selectCount(queryWrapper);
|
||||||
.set("online_status", 1);
|
if(count == 0){
|
||||||
deviceMapper.update(updateWrapper);
|
UpdateWrapper<Device> updateWrapper = new UpdateWrapper<>();
|
||||||
|
updateWrapper.eq("device_imei", message)
|
||||||
|
.set("online_status", 1);
|
||||||
|
deviceMapper.update(updateWrapper);
|
||||||
|
}
|
||||||
// 模拟业务处理耗时
|
// 模拟业务处理耗时
|
||||||
// Thread.sleep(200);
|
// Thread.sleep(200);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user