From 4c4b07d004dd49320c418e52e203f302306b8e4e Mon Sep 17 00:00:00 2001 From: lihongjie0209 Date: Tue, 24 Sep 2024 17:26:45 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A3=85=E6=88=BF=E6=95=B0=E6=8D=AE=E7=9B=91?= =?UTF-8?q?=E5=90=AC=E5=99=A8=E5=A2=9E=E5=8A=A0=E9=94=81=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E5=B9=B6=E5=8F=91=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coal/dataCollector/listener/WeightListener.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/cn/lihongjie/coal/dataCollector/listener/WeightListener.java b/src/main/java/cn/lihongjie/coal/dataCollector/listener/WeightListener.java index 3830315a..730abbed 100644 --- a/src/main/java/cn/lihongjie/coal/dataCollector/listener/WeightListener.java +++ b/src/main/java/cn/lihongjie/coal/dataCollector/listener/WeightListener.java @@ -25,12 +25,15 @@ import jakarta.persistence.criteria.CriteriaQuery; import jakarta.persistence.criteria.Predicate; import jakarta.persistence.criteria.Root; +import lombok.Cleanup; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.HmacAlgorithms; import org.apache.commons.codec.digest.HmacUtils; import org.apache.commons.lang3.StringUtils; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.Exchange; import org.springframework.amqp.rabbit.annotation.QueueBinding; @@ -69,6 +72,8 @@ public class WeightListener { @Autowired ConversionService conversionService; + @Autowired RedissonClient redissonClient; + @SneakyThrows @RabbitListener( bindings = { @@ -130,6 +135,12 @@ public class WeightListener { var device = devices.get(0); + + @Cleanup("unlock") RLock lock = redissonClient.getLock("weightListener." + device.getId()); + + lock.lock(); + + JsonNode jsonNode = objectMapper.readTree(body); DataCollectorLogEntity logEntity = new DataCollectorLogEntity();