redisson锁 tryLock的使用及正确用法

redisson锁 tryLock的使用及正确用法方式一RLocklock=redissonClient.getLock(“Export:create:”+Context.get().getCorpId());try{if(lock.tryLock(5,10,TimeUnit.SECONDS)){//业务处理}else{Assert.isTrue(false,”排队中,请稍后重试!”);}}catch(InterruptedExceptione){.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

方式一
RLock lock = redissonClient.getLock("Export:create:" + Context.get().getCorpId());
try {
    if (lock.tryLock(5, 10, TimeUnit.SECONDS)) {
        //业务处理
    } else {
        Assert.isTrue(false, "排队中,请稍后重试!");
    }
} catch (InterruptedException e) {
    Assert.isTrue(false, "请勿重复操作!");
} finally {
    if (lock.isLocked()) {
        lock.unlock();
    }
}

方式二:
RLock lock = redisson.getLock(String.format(REWARD_CARD_LOCK_KEY, 2));

try {

//尝试加锁,最多等待10秒,上锁以后10秒自动解锁

if (lock.tryLock(10,10, TimeUnit.SECONDS)) {

try {

//处理

logger.info(“tryLock thread—{}, lock:{}”, Thread.currentThread().getId(), lock);

} catch (Exception e) {

} finally {

//解锁

lock.unlock();

}

}

} catch (InterruptedException e) {

//处理

//保留中断发生的证据,以便调用栈中更高层的代码能知道中断,并对中断作出响应 Thread.currentThread().interrupt();

}

public void testReentrantLock(RedissonClient redisson){

RLock lock = redisson.getLock(“anyLock”);
try{

// 1. 最常见的使用方法
//lock.lock();
// 2. 支持过期解锁功能,10秒钟以后自动解锁, 无需调用unlock方法手动解锁
//lock.lock(10, TimeUnit.SECONDS);
// 3. 尝试加锁,最多等待3秒,上锁以后10秒自动解锁
boolean res = lock.tryLock(3, 10, TimeUnit.SECONDS);
if(res){ //成功
// do your business
}
} catch (InterruptedException e) {

e.printStackTrace();
} finally {

lock.unlock();
}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183889.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 数据库的查询语句_数据库select from where

    数据库的查询语句_数据库select from where一、温馨提示在dos窗口登录mysql,这里面使用库,给库中表添加一条中文数据—-会出现插入数据有问题,中文错误这是因为:1、在dos窗口中,默认的编码格式gbk,而mysql服务器软件使用的编码utf82、在dos窗口输入一个指令,模糊查询当前mysql数据库中所有带有”character”字符集的变量全部出来SHOWVARIABLESLIKE’%character%’;3、在dos窗口中需要修改setchar…

  • 一只救助犬的最后遗言

    一只救助犬的最后遗言这是刚在雅虎上看到的一篇文章,内容讲述一只日本救助犬的真实而动人的故事,阅后不得不让人感叹人与动物之间的感情和谐与真挚。实话说,其令我这个大男人哽咽难语。想想现今,在这个人与人之间充满了不信任,在这

  • RKE部署Kubernetes集群

    RKE部署Kubernetes集群

  • charles(2)MAC Charles关闭后无法上网

    charles(2)MAC Charles关闭后无法上网前言charles关闭后,发现网页突然打开了,那大概率是设置了代理,但明明已经关闭了charles,这是由于mac网络偏好设置中,使用的是手动代理,将其改为自动即可解决方法1打开网络偏好设置,

  • C语言再学习 — 创建excel文件

    C语言再学习 — 创建excel文件参看:C语言操作Excel表格上一篇文章讲了一下cJSON,可以生成json文件了。这篇文章讲一下怎么生成excel表xsl格式文件。注意点:1、文件类型为xls或者xlsx2、使用fprintf写入3、了解转义字符参看:C语言再学习–转义字符示例:uint32_tCreate_Excel(void){ FILE*fp_txt=NULL; fp_txt=fopen(“C:\\Users\\Administrator\\Desktop\\res.xls”,”

  • MAC、OS系统上怎么安装MT4、MT5交易软件

    MAC、OS系统上怎么安装MT4、MT5交易软件对于有些交易易来说,如果自己的电脑是苹果电脑,想要在MACOS系统中操作和使用MT4/MT5软件,那么应该怎么办呢?其实还是有办法的。首先您可以在自己的苹果电脑中安装Wine,它是一个免费的程序,安装之后,您就可以运行Windows系统应用程序。由于Wine其实还不是一个完全稳定的程序,可能您在运行程序的时候又部分功能无法正常运作。所以建议您可以安装PlayOnMac,它是Wine相关的软件,更利于在MACOS系统中操作。在MacOS系统安装MT4/MT5交易软件主要可以分成两步:安装W

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号