修改es多节点启动
This commit is contained in:
@@ -96,10 +96,10 @@ public class ESJobSearchImpl implements IESJobSearchService
|
|||||||
private boolean acquireDistributedLock() throws InterruptedException {
|
private boolean acquireDistributedLock() throws InterruptedException {
|
||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
while (System.currentTimeMillis() - start < WAIT_LOCK_SECONDS * 1000) {
|
while (System.currentTimeMillis() - start < WAIT_LOCK_SECONDS * 1000) {
|
||||||
Boolean success = redisCache.setIfAbsent(ES_INIT_LOCK_KEY,"es_init_locked",
|
boolean success = redisCache.setIfAbsent(ES_INIT_LOCK_KEY,"es_init_locked",
|
||||||
LOCK_EXPIRE_SECONDS,TimeUnit.SECONDS
|
LOCK_EXPIRE_SECONDS,TimeUnit.SECONDS
|
||||||
);
|
);
|
||||||
if (Boolean.TRUE.equals(success)) {
|
if (success) {
|
||||||
logger.info("成功获取ES初始化分布式锁,key:{}", ES_INIT_LOCK_KEY);
|
logger.info("成功获取ES初始化分布式锁,key:{}", ES_INIT_LOCK_KEY);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -265,4 +265,17 @@ public class RedisCache
|
|||||||
{
|
{
|
||||||
return redisTemplate.keys(pattern);
|
return redisTemplate.keys(pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分布式锁:不存在则设置缓存(原子操作)
|
||||||
|
* @param key 缓存键
|
||||||
|
* @param value 缓存值
|
||||||
|
* @param timeout 过期时间
|
||||||
|
* @param unit 时间单位
|
||||||
|
* @return true=设置成功(获取锁),false=已存在(未获取锁)
|
||||||
|
*/
|
||||||
|
public boolean setIfAbsent(String key, Object value, long timeout, TimeUnit unit) {
|
||||||
|
Boolean result = redisTemplate.opsForValue().setIfAbsent(key, value, timeout, unit);
|
||||||
|
return Boolean.TRUE.equals(result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user