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);