123备份

作者: hemingkung | 来源:发表于2020-08-10 09:24 被阅读0次
    
    
            String alock = deviceStatusSyncParam.getSn();
            APIResult res = new APIResult();
            RLock lock = redissonClient.getLock(alock);
            boolean getLock = false;
            try {
                if (getLock = lock.tryLock(120, TimeUnit.SECONDS)) {
                    logger.info("start time:" + DateUtils.format(new Date()));
                    logger.info("Redisson获取到分布式锁:{},ThreadName:{}", alock, Thread.currentThread().getName());
    
                    String redisCompanyCode = Optional.ofNullable(stringRedisTemplate.opsForHash().get(RedisKey.getDeviceInfo(deviceStatusSyncParam.getSn()), RedisKey.DeviceField.companyCode.name()))
                            .map(Object::toString).orElse(StringUtils.EMPTY);
                    logger.info("[companyCode] io同步的公司编码:" + deviceStatusSyncParam.getCompanyCode());
                    logger.info("[redisCompanyCode] redis的公司编码:" + deviceStatusSyncParam.getCompanyCode());
                    logger.info("[syncStatus] io同步的状态:" + syncStatus);
                    if (!(!deviceStatusSyncParam.getCompanyCode().equals(redisCompanyCode) && syncStatus.equals(-1))) {
                        logger.info("执行device缓存的更新操作");
                        this.cache(Collections.singletonList(device), CurdEnum.UPDATE, deviceStatusSyncParam.getCompanyCode());
                    }
                    Thread.sleep(60000);
                    System.out.println("sleeping ...  ");
                    logger.info("end time:" + DateUtils.format(new Date()));
                } else {
                    logger.info("Redisson没有获取到分布式锁:{},ThreadName:{}", alock, Thread.currentThread().getName());
                }
            } catch (InterruptedException e) {
                logger.error("Redisson分布式锁获取异常", e);
            } finally {
                if (!getLock) {
                    return;
                }
                lock.unlock();
                logger.info("Redisson分布式锁释放锁");
            }
        }
    
    
    
    <dependency>
                <groupId>org.redisson</groupId>
                <artifactId>redisson-spring-boot-starter</artifactId>
                <version>3.10.7</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.redisson</groupId>
                        <artifactId>redisson-spring-data-21</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.redisson</groupId>
                <artifactId>redisson-spring-data-20</artifactId>
                <version>3.10.7</version>
            </dependency>
    

    相关文章

      网友评论

          本文标题:123备份

          本文链接:https://www.haomeiwen.com/subject/uwyddktx.html