mirror of
https://codeup.aliyun.com/64f7d6b8ce01efaafef1e678/coal/coal.git
synced 2026-01-25 07:46:40 +08:00
磅房数据监听器增加锁避免并发问题
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user