首页 存档 技术 查看内容

redis分布式内存锁:余量扣除示例(下) 上文接redis分布式内存锁:余量扣除示例(上) 余 ...

2018-3-30 13:00 |来自: 互联网 267 0

摘要: 上文接redis分布式内存锁:余量扣除示例(上) 余量扣除代码片段2,扣除任意数值。 /** *扣取现金账本 *@paramactid账户id *@return *@throwsFileNotFoundException *@throwsIOException *@throwsInterruptedExceptio ...

上文接redis分布式内存锁:余量扣除示例(上)

余量扣除代码片段2,扣除任意数值。

  1. /**

  2. *扣取现金账本

  3. *@paramactid账户id

  4. *@return

  5. *@throwsFileNotFoundException

  6. *@throwsIOException

  7. *@throwsInterruptedException

  8. */

  9. privatebooleandeductCashAccount(Stringactid,intamount)throwsFileNotFoundException,IOException,InterruptedException{

  10. /**扣余额直接操作redis缓存数据库,key由账户ID,-字符,字符串balance组成*/

  11. longstart=System.currentTimeMillis();

  12. if(redisson==null){

  13. logger.error("RedissonisNULL");

  14. returnfalse;

  15. }

  16. Stringkey="CASH_" actid;

  17. Stringlock_point="LOCK_CASH_" actid;

  18. RLocklock=redisson.getLock(lock_point);//获取账户锁对象

  19. logger.info("getlock" lock_point);

  20. booleanlocked=lock.tryLock(10,60,TimeUnit.SECONDS);//尝试锁住账户对象,waitTime第一个参数获取锁超时时间30毫秒,leaseTime第二参数,锁自动释放时间

  21. if(!locked){

  22. logger.info("cann'tgetlock,id=" actid);

  23. returnfalse;

  24. }

  25. //lock.lock();

  26. logger.info("getlock" lock_point "ok");

  27. RBucket

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部