From 45ae0678839bed25b4d68ca2d31d2ead21ed37bf Mon Sep 17 00:00:00 2001 From: sh Date: Fri, 27 Mar 2026 18:03:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9es=E5=A4=9A=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E5=90=AF=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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; }