方式一rlock lock=redissonclient.get lock (导出: create : ) context.get ).getCorpId ); 您已进入try { if (lock.trylock (5,10,TimeUnit.SECONDS ) ) /业务处理}else ) assert.istrue ) false,'队列,请稍后再试); } catch (交叉引用) assert.istrue ) false,'不要重复操作!' ); ) finally(if ) lock.islocked ) ) { lock.unlock ); }方式2 :
rocklock=redis son.get lock (string.format (reward _ card _ lock _ key,2 );
try {
//尝试锁定,最多等待10秒,锁定后10秒自动解锁
if (lock.trylock (10,10,TimeUnit.SECONDS ) )。
try {
//处理
logger.info(trylockthread----{},lock:{},Thread.currentThread ).getId ),lock );
}catch(exceptione ) {
} finally {
//解除锁定
lock.unlock (;
}
}
} catch (互联互通) )
//处理
//调用堆栈中的高级代码知道中断,并响应中断,返回Thread.currentThread ().interrupt );
}
Publicvoidtestreentrantlock{
rocklock=redis son.get lock (' 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 (互联互通) )
e .打印堆栈跟踪(;
} finally {
lock.unlock (;
}
}