From 8a731efe0dc5e47cac75cab8373aedc21eba04be Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期三, 11 十二月 2024 14:01:41 +0800
Subject: [PATCH] update 优化 workflow 模块增加接口文档生成功能
---
ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java | 97 +++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 90 insertions(+), 7 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java
index ee58411..355cd29 100644
--- a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java
@@ -4,6 +4,7 @@
import lombok.NoArgsConstructor;
import org.dromara.common.core.utils.SpringUtils;
import org.redisson.api.*;
+import org.redisson.api.options.KeysScanOptions;
import java.time.Duration;
import java.util.Collection;
@@ -36,8 +37,22 @@
* @return -1 琛ㄧず澶辫触
*/
public static long rateLimiter(String key, RateType rateType, int rate, int rateInterval) {
+ return rateLimiter(key, rateType, rate, rateInterval, 0);
+ }
+
+ /**
+ * 闄愭祦
+ *
+ * @param key 闄愭祦key
+ * @param rateType 闄愭祦绫诲瀷
+ * @param rate 閫熺巼
+ * @param rateInterval 閫熺巼闂撮殧
+ * @param timeout 瓒呮椂鏃堕棿
+ * @return -1 琛ㄧず澶辫触
+ */
+ public static long rateLimiter(String key, RateType rateType, int rate, int rateInterval, int timeout) {
RRateLimiter rateLimiter = CLIENT.getRateLimiter(key);
- rateLimiter.trySetRate(rateType, rate, rateInterval, RateIntervalUnit.SECONDS);
+ rateLimiter.trySetRate(rateType, rate, Duration.ofSeconds(rateInterval), Duration.ofSeconds(timeout));
if (rateLimiter.tryAcquire()) {
return rateLimiter.availablePermits();
} else {
@@ -65,6 +80,12 @@
consumer.accept(msg);
}
+ /**
+ * 鍙戝竷娑堟伅鍒版寚瀹氱殑棰戦亾
+ *
+ * @param channelKey 閫氶亾key
+ * @param msg 鍙戦�佹暟鎹�
+ */
public static <T> void publish(String channelKey, T msg) {
RTopic topic = CLIENT.getTopic(channelKey);
topic.publish(msg);
@@ -107,7 +128,11 @@
bucket.setAndKeepTTL(value);
} catch (Exception e) {
long timeToLive = bucket.remainTimeToLive();
- setCacheObject(key, value, Duration.ofMillis(timeToLive));
+ if (timeToLive == -1) {
+ setCacheObject(key, value);
+ } else {
+ setCacheObject(key, value, Duration.ofMillis(timeToLive));
+ }
}
} else {
bucket.set(value);
@@ -255,6 +280,18 @@
}
/**
+ * 杩藉姞缂撳瓨List鏁版嵁
+ *
+ * @param key 缂撳瓨鐨勯敭鍊�
+ * @param data 寰呯紦瀛樼殑鏁版嵁
+ * @return 缂撳瓨鐨勫璞�
+ */
+ public static <T> boolean addCacheList(final String key, final T data) {
+ RList<T> rList = CLIENT.getList(key);
+ return rList.add(data);
+ }
+
+ /**
* 娉ㄥ唽List鐩戝惉鍣�
* <p>
* key 鐩戝惉鍣ㄩ渶寮�鍚� `notify-keyspace-events` 绛� redis 鐩稿叧閰嶇疆
@@ -279,6 +316,19 @@
}
/**
+ * 鑾峰緱缂撳瓨鐨刲ist瀵硅薄(鑼冨洿)
+ *
+ * @param key 缂撳瓨鐨勯敭鍊�
+ * @param form 璧峰涓嬫爣
+ * @param to 鎴涓嬫爣
+ * @return 缂撳瓨閿�煎搴旂殑鏁版嵁
+ */
+ public static <T> List<T> getCacheListRange(final String key, int form, int to) {
+ RList<T> rList = CLIENT.getList(key);
+ return rList.range(form, to);
+ }
+
+ /**
* 缂撳瓨Set
*
* @param key 缂撳瓨閿��
@@ -288,6 +338,18 @@
public static <T> boolean setCacheSet(final String key, final Set<T> dataSet) {
RSet<T> rSet = CLIENT.getSet(key);
return rSet.addAll(dataSet);
+ }
+
+ /**
+ * 杩藉姞缂撳瓨Set鏁版嵁
+ *
+ * @param key 缂撳瓨鐨勯敭鍊�
+ * @param data 寰呯紦瀛樼殑鏁版嵁
+ * @return 缂撳瓨鐨勫璞�
+ */
+ public static <T> boolean addCacheSet(final String key, final T data) {
+ RSet<T> rSet = CLIENT.getSet(key);
+ return rSet.add(data);
}
/**
@@ -470,18 +532,39 @@
}
/**
- * 鑾峰緱缂撳瓨鐨勫熀鏈璞″垪琛�
- *
+ * 鑾峰緱缂撳瓨鐨勫熀鏈璞″垪琛�(鍏ㄥ眬鍖归厤蹇界暐绉熸埛 鑷鎷兼帴绉熸埛id)
+ * <P>
+ * limit-璁剧疆鎵弿鐨勯檺鍒舵暟閲�(榛樿涓�0,鏌ヨ鍏ㄩ儴)
+ * pattern-璁剧疆閿殑鍖归厤妯″紡(榛樿涓簄ull)
+ * chunkSize-璁剧疆姣忔鎵弿鐨勫潡澶у皬(榛樿涓�0,鏈柟娉曡缃负1000)
+ * type-璁剧疆閿殑绫诲瀷(榛樿涓簄ull,鏌ヨ鍏ㄩ儴绫诲瀷)
+ * </P>
+ * @see KeysScanOptions
* @param pattern 瀛楃涓插墠缂�
* @return 瀵硅薄鍒楄〃
*/
public static Collection<String> keys(final String pattern) {
- Stream<String> stream = CLIENT.getKeys().getKeysStreamByPattern(pattern);
- return stream.collect(Collectors.toList());
+ return keys(KeysScanOptions.defaults().pattern(pattern).chunkSize(1000));
}
/**
- * 鍒犻櫎缂撳瓨鐨勫熀鏈璞″垪琛�
+ * 閫氳繃鎵弿鍙傛暟鑾峰彇缂撳瓨鐨勫熀鏈璞″垪琛�
+ * @param keysScanOptions 鎵弿鍙傛暟
+ * <P>
+ * limit-璁剧疆鎵弿鐨勯檺鍒舵暟閲�(榛樿涓�0,鏌ヨ鍏ㄩ儴)
+ * pattern-璁剧疆閿殑鍖归厤妯″紡(榛樿涓簄ull)
+ * chunkSize-璁剧疆姣忔鎵弿鐨勫潡澶у皬(榛樿涓�0)
+ * type-璁剧疆閿殑绫诲瀷(榛樿涓簄ull,鏌ヨ鍏ㄩ儴绫诲瀷)
+ * </P>
+ * @see KeysScanOptions
+ */
+ public static Collection<String> keys(final KeysScanOptions keysScanOptions) {
+ Stream<String> keysStream = CLIENT.getKeys().getKeysStream(keysScanOptions);
+ return keysStream.collect(Collectors.toList());
+ }
+
+ /**
+ * 鍒犻櫎缂撳瓨鐨勫熀鏈璞″垪琛�(鍏ㄥ眬鍖归厤蹇界暐绉熸埛 鑷鎷兼帴绉熸埛id)
*
* @param pattern 瀛楃涓插墠缂�
*/
--
Gitblit v1.9.3