
复制public String acquireLockWithTimeout( Jedis conn,不那事 String lockName, long acquireTimeout, long lockTimeout) { String identifier = UUID.randomUUID().toString(); //锁的值 String lockKey = "lock:" + lockName; //锁的键 int lockExpire = (int)(lockTimeout / 1000); //锁的过期时间 long end = System.currentTimeMillis() + acquireTimeout; //尝试获取锁的时限 while (System.currentTimeMillis() < end) { //判断是云服务器否超过获取锁的时限 if (conn.setnx(lockKey, identifier) == 1){ //判断设置锁的值是否成功 conn.expire(lockKey, lockExpire); //设置锁的免费源码下载过期时间 return identifier; //返回锁的值 } if (conn.ttl(lockKey) == -1) { //判断锁是否超时 conn.expire(lockKey, lockExpire); } try { Thread.sleep(1000); //等待1秒后重新尝试设置锁的值 }catch(InterruptedException ie){ Thread.currentThread().interrupt(); } } // 获取锁失败时返回null returnnull; } 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.b2b信息网








