磅房数据监听器增加锁避免并发问题

This commit is contained in:
2024-09-24 17:26:45 +08:00
parent c7297fc50a
commit 4c4b07d004

View File

@@ -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();