1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| package com.util.qunar;
import com.service.qunar.FQunarSearchService; import com.service.zl.ValidationCabinAndPrice_QNR; import org.apache.log4j.Logger; import org.redisson.Redisson; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.redisson.config.Config; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;
import java.util.concurrent.TimeUnit;
@Service public class RedissonTemplate {
private static volatile RedissonClient redissonClient;
private static final String LOCK_TITLE = "QNRLock_";
public static boolean acquireSecond(String lockName, Integer waitTime, Integer timeOutSecond){ try { String key = LOCK_TITLE + lockName; RLock mylock = redisLock().getLock(key); return mylock.tryLock(waitTime, timeOutSecond, TimeUnit.SECONDS); } catch (InterruptedException e) { System.out.println(e); } return false; }
private static RedissonClient redisLock(){ if(redissonClient == null){ synchronized (FQunarSearchService.class){ if(redissonClient == null){ Config config = new Config(); config.useSingleServer().setAddress("redis://127.0.0.1:6379") .setPassword("123") .setDatabase(17); redissonClient = Redisson.create(config); } } } return redissonClient; }
public static void release(String lockName){ String key = LOCK_TITLE + lockName; RLock mylock = redissonClient.getLock(key); mylock.unlock(); } }
|