From 556b8751e0f523b0ddc80661ccb3e8a6f2f77450 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 25 Dec 2023 20:26:30 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E5=A4=84=E7=90=86=20dev=20?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E5=8F=91=E7=8E=B0=E7=9A=84=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=20Redisson=20=E7=89=88=E6=9C=AC=E4=B8=8D=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/cmd/helper/CustomTaskHelper.java | 2 +- workflow-engine-server/pom.xml | 4 +-- .../common/aspectj/RepeatSubmitAspect.java | 8 +++-- .../server/common/util/RedisUtils.java | 34 ++----------------- 4 files changed, 12 insertions(+), 36 deletions(-) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/helper/CustomTaskHelper.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/helper/CustomTaskHelper.java index 67cf95656..401253e49 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/helper/CustomTaskHelper.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/helper/CustomTaskHelper.java @@ -84,7 +84,7 @@ public class CustomTaskHelper { throw new WorkflowEngineException(TASK_COMPLETE_FAIL_NOT_EXISTS); } if (Objects.nonNull(originTaskAssigner) && - !Objects.equals(taskEntity.getAssignee(), originTaskAssigner.getAssignee())) { + !Objects.equals(taskEntity.getAssignee(), originTaskAssigner.buildAssigneeId())) { throw new WorkflowEngineException(TASK_COMPLETE_FAIL_ASSIGN_NOT_SELF); } } diff --git a/workflow-engine-server/pom.xml b/workflow-engine-server/pom.xml index 0f287d9b8..af08e5b7a 100644 --- a/workflow-engine-server/pom.xml +++ b/workflow-engine-server/pom.xml @@ -39,13 +39,13 @@ org.redisson - redisson + redisson-spring-data-32 org.redisson - redisson + redisson-spring-data-24 ${redisson.version} diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/aspectj/RepeatSubmitAspect.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/aspectj/RepeatSubmitAspect.java index b92a926ce..311d55fa6 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/aspectj/RepeatSubmitAspect.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/aspectj/RepeatSubmitAspect.java @@ -60,7 +60,10 @@ public class RepeatSubmitAspect { String paramsKey = SecureUtil.md5(nowParams); // 唯一标识(指定key + url + 消息头) String cacheRepeatKey = REPEAT_SUBMIT_KEY + url + ":" + paramsKey; - if (RedisUtils.setObjectIfAbsent(cacheRepeatKey, "", Duration.ofMillis(interval))) { + + String key = RedisUtils.getCacheObject(cacheRepeatKey); + if (key == null) { + RedisUtils.setCacheObject(cacheRepeatKey, "", Duration.ofMillis(interval)); KEY_CACHE.set(cacheRepeatKey); } else { throw new WorkflowEngineException(REPEAT_SUBMIT_ERROR_TIPS, repeatSubmit.message()); @@ -144,7 +147,8 @@ public class RepeatSubmitAspect { public static HttpServletRequest getRequest() { try { - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + ServletRequestAttributes attributes = + (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); return attributes.getRequest(); } catch (Exception e) { return null; diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/util/RedisUtils.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/util/RedisUtils.java index aef10ae1f..7ecef815f 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/util/RedisUtils.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/util/RedisUtils.java @@ -10,7 +10,6 @@ import org.redisson.api.RBucketAsync; import org.redisson.api.RKeys; import org.redisson.api.RList; import org.redisson.api.RMap; -import org.redisson.api.RMapAsync; import org.redisson.api.RRateLimiter; import org.redisson.api.RSet; import org.redisson.api.RTopic; @@ -19,6 +18,7 @@ import org.redisson.api.RateType; import org.redisson.api.RedissonClient; import java.time.Duration; +import java.time.Instant; import java.util.Collection; import java.util.List; import java.util.Map; @@ -35,7 +35,6 @@ import java.util.stream.Stream; @NoArgsConstructor(access = AccessLevel.PRIVATE) @SuppressWarnings(value = {"unchecked", "rawtypes"}) public class RedisUtils { - private static final RedissonClient CLIENT = SpringUtils.getBean(RedissonClient.class); /** @@ -137,22 +136,10 @@ public class RedisUtils { RBatch batch = CLIENT.createBatch(); RBucketAsync bucket = batch.getBucket(key); bucket.setAsync(value); - bucket.expireAsync(duration); + bucket.expireAsync(Instant.now().plus(duration)); batch.execute(); } - /** - * 如果不存在则设置 并返回 true 如果存在则返回 false - * - * @param key 缓存的键值 - * @param value 缓存的值 - * @return set成功或失败 - */ - public static boolean setObjectIfAbsent(final String key, final T value, final Duration duration) { - RBucket bucket = CLIENT.getBucket(key); - return bucket.setIfAbsent(value, duration); - } - /** * 注册对象监听器 *

@@ -186,7 +173,7 @@ public class RedisUtils { */ public static boolean expire(final String key, final Duration duration) { RBucket rBucket = CLIENT.getBucket(key); - return rBucket.expire(duration); + return rBucket.expire(Instant.now().plus(duration)); } /** @@ -398,21 +385,6 @@ public class RedisUtils { return rMap.remove(hKey); } - /** - * 删除Hash中的数据 - * - * @param key Redis键 - * @param hKeys Hash键 - */ - public static void delMultiCacheMapValue(final String key, final Set hKeys) { - RBatch batch = CLIENT.createBatch(); - RMapAsync rMap = batch.getMap(key); - for (String hKey : hKeys) { - rMap.removeAsync(hKey); - } - batch.execute(); - } - /** * 获取多个Hash中的数据 *