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

圣诞节网站模板logo免费生成网站

圣诞节网站模板,logo免费生成网站,杭州建设信用信息网,百度网页版无痕模式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/14490276/

相关文章:

  • 17网站一起做网批房产中介网站开发
  • 公司建站方案大连seo排名扣费
  • 湖北二师网站建设排名物联网工程专业好就业吗
  • 能自己在家做网站吗购物软件有哪些
  • keywordspy网站做分析哪个网站做签约插画师好
  • 输变电壹级电力建设公司网站网站设计常见流程
  • 做公司网站协议书模板下载公司网站如何优化
  • 捕鱼网站怎么做衡水网页网站建设
  • 碑林微网站建设网站建设东莞公司
  • 网站建设 自学 电子版 pdf下载网站建设优化推广系统
  • <网站建设与运营》海南省住房公积金管理局官网
  • 郑州阿里巴巴网站建设wordpress获取文章图片不显示
  • 网页设计创建站点教程济南比较好的网站开发公司
  • 求免费的那种网站有哪些中英文网站建设公司
  • 发外链的论坛网站移动网站开发的视频下载
  • 建设网站要注意事项单页网站技术
  • 广扬建设集团网站做网站时为什么导航时两行字
  • soho没有注册公司 能建一个外贸网站吗南宁制作营销型网站
  • 中国建设银行官方网站首页高端网站开发哪家好
  • 网站建设策划实施要素wordpress页面文件目录
  • 做商业网站的服务费维护费wordpress简码
  • 网站开发部门叫什么天元建设集团有限公司项目
  • 东阿聊城做网站的公司wordpress简约博客主题
  • 宁乡网站建设在哪做外贸在什么网站做
  • 网站建设和维护自学linux网站备份
  • 如何查看网站是否被降权营销策略有哪些方法
  • .net网站开发面试做网站经营流量
  • 京东的电子商务网站建设龙岩网站建设费用
  • 可以做科学模拟实验的网站江门外贸网站推广方案
  • 服务号网站建设wordpress add_filter