From a491534489e3574d99b7782952a7e8885344025d Mon Sep 17 00:00:00 2001 From: yueye <768242801@qq.com> Date: Tue, 4 Jul 2023 18:32:38 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BD=BF=E7=94=A8redisso?= =?UTF-8?q?n=E9=98=9F=E5=88=97=E6=97=B6=E7=9A=84=E7=9B=91=E5=90=AC?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=B3=A8=E6=84=8F=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/demo/controller/queue/DelayedQueueController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java index e6dbee863..1b8f1d370 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java @@ -38,6 +38,7 @@ public class DelayedQueueController { log.info("通道: {} 监听中......", queueName); // 项目初始化设置一次即可 QueueUtils.subscribeBlockingQueue(queueName, (String orderNum) -> { + //注:如业务代码部分使用到了redis相关操作,需要将业务逻辑异步,否则将会报错:Sync methods can't be invoked from async/rx/reactive listeners // 观察接收时间 log.info("通道: {}, 收到数据: {}", queueName, orderNum); }); From 6cfc1614627c6668b1e7c330570727c5b5033f2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=88=E5=A4=9C?= <768242801@qq.com> Date: Tue, 4 Jul 2023 11:17:30 +0000 Subject: [PATCH 2/2] update ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 月夜 <768242801@qq.com> --- .../demo/controller/queue/DelayedQueueController.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java index 1b8f1d370..90b4f9a76 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java @@ -28,6 +28,9 @@ import java.util.concurrent.TimeUnit; @RequestMapping("/demo/queue/delayed") public class DelayedQueueController { + //注入线程池-需要在application.yml中将thread-pool.enabled设置为true + private final ThreadPoolTaskExecutor threadPoolTaskExecutor; + /** * 订阅队列 * @@ -38,9 +41,15 @@ public class DelayedQueueController { log.info("通道: {} 监听中......", queueName); // 项目初始化设置一次即可 QueueUtils.subscribeBlockingQueue(queueName, (String orderNum) -> { - //注:如业务代码部分使用到了redis相关操作,需要将业务逻辑异步,否则将会报错:Sync methods can't be invoked from async/rx/reactive listeners // 观察接收时间 log.info("通道: {}, 收到数据: {}", queueName, orderNum); + + //业务代码 + //注:如业务代码部分使用到了redis相关操作,需要将业务逻辑异步,否则将会报错:Sync methods can't be invoked from async/rx/reactive listeners + //示例 + threadPoolTaskExecutor.execute(() -> { + String str = RedisUtils.getCacheObject("test"); + }); }); return R.ok("操作成功"); }