pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/QueueUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityDemo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityDemoComparator.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pom.xml
@@ -31,7 +31,7 @@ <hutool.version>5.8.5</hutool.version> <okhttp.version>4.10.0</okhttp.version> <spring-boot-admin.version>2.7.4</spring-boot-admin.version> <redisson.version>3.17.5</redisson.version> <redisson.version>3.17.6</redisson.version> <lock4j.version>2.2.2</lock4j.version> <dynamic-ds.version>3.5.1</dynamic-ds.version> <tlog.version>1.4.3</tlog.version> ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/QueueUtils.java
@@ -42,7 +42,7 @@ } /** * è·åä¸ä¸ªæ®ééåæ°æ® æ²¡ææ°æ®è¿å null * éç¨è·åä¸ä¸ªéåæ°æ® æ²¡ææ°æ®è¿å null(䏿¯æå»¶è¿éå) * * @param queueName éåå */ @@ -52,11 +52,19 @@ } /** * å 餿®ééåæ°æ® * éç¨å é¤éåæ°æ®(䏿¯æå»¶è¿éå) */ public static <T> boolean removeQueueObject(String queueName, T data) { RBlockingQueue<T> queue = CLIENT.getBlockingQueue(queueName); return queue.remove(data); } /** * éç¨éæ¯éå ææé»å¡çå¬ æ¥é(䏿¯æå»¶è¿éå) */ public static <T> boolean destroyQueue(String queueName) { RBlockingQueue<T> queue = CLIENT.getBlockingQueue(queueName); return queue.delete(); } /** @@ -118,23 +126,12 @@ * * @param queueName éåå * @param comparator æ¯è¾å¨ */ public static <T> boolean trySetPriorityQueueComparator(String queueName, Comparator<T> comparator) { RPriorityBlockingQueue<T> priorityBlockingQueue = CLIENT.getPriorityBlockingQueue(queueName); return priorityBlockingQueue.trySetComparator(comparator); } /** * å°è¯è®¾ç½® ä¼å é忝è¾å¨ ç¨äºæåºä¼å 级 * * @param queueName éåå * @param comparator æ¯è¾å¨ * @param destroy å·²å卿¯å¦éæ¯ */ public static <T> boolean trySetPriorityQueueComparator(String queueName, Comparator<T> comparator, boolean destroy) { RPriorityBlockingQueue<T> priorityBlockingQueue = CLIENT.getPriorityBlockingQueue(queueName); if (priorityBlockingQueue.isExists() && destroy) { destroyPriorityQueueObject(queueName); destroyQueue(queueName); } return priorityBlockingQueue.trySetComparator(comparator); } @@ -148,32 +145,6 @@ public static <T> boolean addPriorityQueueObject(String queueName, T data) { RPriorityBlockingQueue<T> priorityBlockingQueue = CLIENT.getPriorityBlockingQueue(queueName); return priorityBlockingQueue.offer(data); } /** * è·åä¸ä¸ªä¼å éåæ°æ® æ²¡ææ°æ®è¿å null * * @param queueName éåå */ public static <T> T getPriorityQueueObject(String queueName) { RPriorityBlockingQueue<T> priorityBlockingQueue = CLIENT.getPriorityBlockingQueue(queueName); return priorityBlockingQueue.poll(); } /** * å é¤ä¼å éåæ°æ® */ public static <T> boolean removePriorityQueueObject(String queueName, T data) { RPriorityBlockingQueue<T> priorityBlockingQueue = CLIENT.getPriorityBlockingQueue(queueName); return priorityBlockingQueue.remove(data); } /** * 鿝ä¼å éå */ public static boolean destroyPriorityQueueObject(String queueName) { RPriorityBlockingQueue<?> priorityBlockingQueue = CLIENT.getPriorityBlockingQueue(queueName); return priorityBlockingQueue.delete(); } /** @@ -197,7 +168,7 @@ public static <T> boolean trySetBoundedQueueCapacity(String queueName, int capacity, boolean destroy) { RBoundedBlockingQueue<T> boundedBlockingQueue = CLIENT.getBoundedBlockingQueue(queueName); if (boundedBlockingQueue.isExists() && destroy) { destroyBoundedQueueObject(queueName); destroyQueue(queueName); } return boundedBlockingQueue.trySetCapacity(capacity); } @@ -212,32 +183,6 @@ public static <T> boolean addBoundedQueueObject(String queueName, T data) { RBoundedBlockingQueue<T> boundedBlockingQueue = CLIENT.getBoundedBlockingQueue(queueName); return boundedBlockingQueue.offer(data); } /** * è·åä¸ä¸ªæçéåæ°æ® æ²¡ææ°æ®è¿å null * * @param queueName éåå */ public static <T> T getBoundedQueueObject(String queueName) { RBoundedBlockingQueue<T> boundedBlockingQueue = CLIENT.getBoundedBlockingQueue(queueName); return boundedBlockingQueue.poll(); } /** * å 餿çéåæ°æ® */ public static <T> boolean removeBoundedQueueObject(String queueName, T data) { RBoundedBlockingQueue<T> boundedBlockingQueue = CLIENT.getBoundedBlockingQueue(queueName); return boundedBlockingQueue.remove(data); } /** * 鿝æçéå */ public static boolean destroyBoundedQueueObject(String queueName) { RBoundedBlockingQueue<?> boundedBlockingQueue = CLIENT.getBoundedBlockingQueue(queueName); return boundedBlockingQueue.delete(); } /** ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java
@@ -35,7 +35,7 @@ @GetMapping("/add") public R<Void> add(String queueName, int capacity) { // ç¨å®äºä¸å®è¦éæ¯ å¦åä¼ä¸ç´åå¨ boolean b = QueueUtils.destroyBoundedQueueObject(queueName); boolean b = QueueUtils.destroyQueue(queueName); log.info("éé: {} , å é¤: {}", queueName, b); // åå§åè®¾ç½®ä¸æ¬¡å³å¯ if (QueueUtils.trySetBoundedQueueCapacity(queueName, capacity)) { @@ -64,7 +64,7 @@ @GetMapping("/remove") public R<Void> remove(String queueName) { String data = "data-" + 5; if (QueueUtils.removeBoundedQueueObject(queueName, data)) { if (QueueUtils.removeQueueObject(queueName, data)) { log.info("éé: {} , å 餿°æ®: {}", queueName, data); } else { return R.fail("æä½å¤±è´¥"); @@ -81,7 +81,7 @@ public R<Void> get(String queueName) { String data; do { data = QueueUtils.getBoundedQueueObject(queueName); data = QueueUtils.getQueueObject(queueName); log.info("éé: {} , è·åæ°æ®: {}", queueName, data); } while (data != null); return R.ok("æä½æå"); ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityDemo.java
@@ -2,6 +2,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import org.jetbrains.annotations.NotNull; /** * å®ä½ç±» 注æä¸å 许使ç¨å é¨ç±» å¦å伿¾ä¸å°ç±» @@ -11,7 +12,12 @@ */ @Data @NoArgsConstructor public class PriorityDemo { public class PriorityDemo implements Comparable<PriorityDemo> { private String name; private Integer orderNum; @Override public int compareTo(@NotNull PriorityDemo other) { return Integer.compare(getOrderNum(), other.getOrderNum()); } } ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityDemoComparator.java
ÎļþÒÑɾ³ý ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java
@@ -34,16 +34,9 @@ @GetMapping("/add") public R<Void> add(String queueName) { // ç¨å®äºä¸å®è¦éæ¯ å¦åä¼ä¸ç´åå¨ boolean b = QueueUtils.destroyPriorityQueueObject(queueName); boolean b = QueueUtils.destroyQueue(queueName); log.info("éé: {} , å é¤: {}", queueName, b); // åå§åè®¾ç½®ä¸æ¬¡å³å¯ æ¤å¤æ³¨æ ä¸å 许ç¨å é¨ç±»æå¿åç±» boolean flag = QueueUtils.trySetPriorityQueueComparator(queueName, new PriorityDemoComparator()); if (flag) { log.info("éé: {} , 设置æ¯è¾å¨æå", queueName); } else { log.info("éé: {} , 设置æ¯è¾å¨å¤±è´¥", queueName); return R.fail("æä½å¤±è´¥"); } for (int i = 0; i < 10; i++) { int randomNum = RandomUtil.randomInt(10); PriorityDemo data = new PriorityDemo(); @@ -70,7 +63,7 @@ PriorityDemo data = new PriorityDemo(); data.setName(name); data.setOrderNum(orderNum); if (QueueUtils.removePriorityQueueObject(queueName, data)) { if (QueueUtils.removeQueueObject(queueName, data)) { log.info("éé: {} , å 餿°æ®: {}", queueName, data); } else { return R.fail("æä½å¤±è´¥"); @@ -87,7 +80,7 @@ public R<Void> get(String queueName) { PriorityDemo data; do { data = QueueUtils.getPriorityQueueObject(queueName); data = QueueUtils.getQueueObject(queueName); log.info("éé: {} , è·åæ°æ®: {}", queueName, data); } while (data != null); return R.ok("æä½æå");