From e9ca2de5f2cf2b6082f74e432f556ea1aaf0ee6c Mon Sep 17 00:00:00 2001 From: YXY <932687738@qq.com> Date: Tue, 26 Sep 2023 19:41:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0redis=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E9=98=B2=E6=AD=A2=E9=87=8D=E5=A4=8D=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/common/core/redis/RedisCache.java | 9 +++++++++ .../ruoyi/quartz/task/CJT/SyncAccountsJobAbstract.java | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java index a7dc290..b223828 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java @@ -35,6 +35,15 @@ public class RedisCache { redisTemplate.opsForValue().set(key, value); } + public Boolean setCacheObjectIfAbsent(final String key, String value, Long time, TimeUnit timeUnit) { + try { + return redisTemplate.opsForValue().setIfAbsent(key, value,time,timeUnit); + }catch (Exception e){ + + } + return true; + } + /** * 缓存基本的对象,Integer、String、实体类等 * diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CJT/SyncAccountsJobAbstract.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CJT/SyncAccountsJobAbstract.java index f36dacf..ad5a152 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CJT/SyncAccountsJobAbstract.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CJT/SyncAccountsJobAbstract.java @@ -469,7 +469,8 @@ public abstract class SyncAccountsJobAbstract { body.put(larkLabel, this.changeValueType(value, cjtSyncTypeRelation)); } uniqueKey = String.join("_", uniqueKeyList).toUpperCase() + "_" + addRecordRequest.getAppTable(); - if (repeatMap.containsKey(uniqueKey)) { + Boolean existFlag = redisCache.setCacheObjectIfAbsent(uniqueKey, uniqueKey, 5L, TimeUnit.MINUTES); + if (repeatMap.containsKey(uniqueKey) || !existFlag) { continue; } repeatMap.put(uniqueKey, 1);