当前位置: 首页 > news >正文

购物网站页面设计图片网站建设与网页制作实训报告

购物网站页面设计图片,网站建设与网页制作实训报告,网络推广公司重诚,郑州做网站公司中boolean res lock.tryLock(100, 10, TimeUnit.SECONDS); RedissonLock里面有这样一个方法tryLock()#xff0c;意思是尝试获取锁的结果。 最大等待时间100s#xff0c;并且获取到锁之后#xff0c;10s之内没有释放的话#xff0c;锁会自动失效。 尝试获取锁超时 time …boolean res lock.tryLock(100, 10, TimeUnit.SECONDS); RedissonLock里面有这样一个方法tryLock()意思是尝试获取锁的结果。 最大等待时间100s并且获取到锁之后10s之内没有释放的话锁会自动失效。 尝试获取锁超时 time waitTime是我们指定的最大的等待获取锁的时间比如是100秒 current 第一次尝试获取锁之前的一个时间戳 当前时间减去current 第一次获取锁耗费的时间假设是1秒 time - 第一次获取锁耗费的时间 100秒 - 1秒 99秒最多再等待99秒尝试获取这个锁如果第一次获取锁的时间直接超过了waitTime等待最大超时时间就会直接标记为获取锁失败 current 当前时间 final RFutureRedissonLockEntry subscribeFuture subscribe(threadId); if (!await(subscribeFuture, time, TimeUnit.MILLISECONDS)) { if (!subscribeFuture.cancel(false)) { subscribeFuture.addListener(new FutureListenerRedissonLockEntry() { Override public void operationComplete(FutureRedissonLockEntry future) throws Exception { if (subscribeFuture.isSuccess()) { unsubscribe(subscribeFuture, threadId); } } }); } acquireFailed(threadId); return false; }他肯定是做了一些事情看起来是订阅了什么东西基于redis的PUB/SUB发布订阅模型订阅了什么东西执行了一些操作所以在下面将可以等待的时间又减去了这段时间的耗时比如说是1秒 此时time 98秒 接下来进入死循环不断的尝试获取锁、等待每次time都不断的减去尝试获取锁的耗时以及等待的耗时然后如果说在time范围内获取到了锁就会返回true如果始终无法获取到锁的话那么就会在time指定的最大时间之后就返回一个false 超时锁自动释放 就是我们自己定义了一个leaseTime和TimeUnit if (leaseTime ! -1) { return tryLockInnerAsync(leaseTime, unit, threadId, RedisCommands.EVAL_LONG); } 如果你没传递这个leaseTime的话这个if分支是不会走的 RFutureLong ttlRemainingFuture tryLockInnerAsync(commandExecutor.getConnectionManager().getCfg().getLockWatchdogTimeout(), TimeUnit.MILLISECONDS, threadId, RedisCommands.EVAL_LONG);用默认的LockWatchdogTimeout()时间30000毫秒30秒 如果你自己指定了一个leaseTime就会直接执行lua脚本去加锁加完锁的结果就直接返回了并不会对那个future加一个监听器以及执行定时调度任务去刷新key的生存周期因为你已经指定了leaseTime以后就意味着你需要的是这个key最多存在10秒钟必须被删除 这个逻辑是当锁不存在的时候新增一个redis数据 if (redis.call(‘exists’, KEYS[1]) 0) then redis.call(‘hset’, KEYS[1], ARGV[2], 1); redis.call(‘pexpire’, KEYS[1], ARGV[1]); return nil; end; 命令大概是这样 hset anyLock 7124f827-475a-4e66-9f3c-fc00e8e8712e:1 1 redis中新增锁之后的数据类型如下 anyLock: { “7124f827-475a-4e66-9f3c-fc00e8e8712e:1”: 1 } 这个命令是设置过期时间 pexpire anyLock 10000 也就是说人家在加锁的时候就设定好了我们的锁key最多就只能存活10秒钟而且后台没有定时调度的任务不断的去刷新锁key的生存周期 我们的那个锁到了10秒钟就会自动被redis给删除生存时间只能是10秒钟然后就会自动释放掉了别的客户端就可以加锁了但是在10秒之内其实你也可以自己去手动释放锁 无非就是我们上一讲讲的原理递减加锁次数删除锁key
http://www.hkea.cn/news/14369903/

相关文章:

  • 怎么做一个企业网站有趣的网络营销案例
  • 如何打击网站网站导航页面模板
  • 网站可以用ai做吗网页设计制作图片页面
  • ui设计模板网站北京网页设计公司兴田德润简介
  • 物价局网站建设情况汇报百度q3财报减亏170亿
  • 园区做网站的好处高端建盏的价格
  • 有没有外国人做发明的网站seo优化代运营
  • 深圳专业设计网站平台网站重新建设的请示
  • 可以免费建设网站吗wordpress 点赞 用户
  • 学校网站建设的申请书网站建设分金手指专业二七
  • 物流 网站 模板天津建设发展集团有限公司
  • 网站开发了下载文件需要云南网站制作
  • 济南网站推广公司外包网络安全
  • 做个网站出来要多少钱网站建设的自查报告
  • 青县网站建设郑州网站建设技术支持
  • 广西省建设厅官方网站暖色系网站模板
  • 安徽省博物馆网站建设网站设计的主要风格
  • 简约风格网站建设wordpress4.9.8中文
  • 什么是网站评价大专学电子商务有用吗
  • 免费行情网站下载大全山东网站建设公司排名
  • 怎么免费弄网站网站建设制作人员招聘要求
  • 石家庄网站建设加强门户网站建设
  • 网站建设实训心得与建议中文域名注册收费标准
  • flashfxp 发布网站广西城市建设学校学生网站
  • 哪些网站做任务好赚钱的wordpress插件怎么安
  • 企业汽车网站建设建筑企业管理软件排名
  • 徐州网站建设4网址缩短在线生成器永久
  • 亿藤互联网站建设开发WordPress底部自定义插件
  • 网站开发都用什么语言做网站一般要了解哪些
  • 南城区网站建设公司天津省网站制作厂家