diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java index 3dbf770..18705f5 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java @@ -96,9 +96,10 @@ public class ESJobSearchImpl implements IESJobSearchService private boolean acquireDistributedLock() throws InterruptedException { long start = System.currentTimeMillis(); while (System.currentTimeMillis() - start < WAIT_LOCK_SECONDS * 1000) { - boolean lockExists = redisCache.hasKey(ES_INIT_LOCK_KEY); - if (!lockExists) { - redisCache.setCacheObject(ES_INIT_LOCK_KEY, "es_init_locked", LOCK_EXPIRE_SECONDS, TimeUnit.SECONDS); + Boolean success = redisCache.setIfAbsent(ES_INIT_LOCK_KEY,"es_init_locked", + LOCK_EXPIRE_SECONDS,TimeUnit.SECONDS + ); + if (Boolean.TRUE.equals(success)) { logger.info("成功获取ES初始化分布式锁,key:{}", ES_INIT_LOCK_KEY); return true; }