From 53fea21a4414fb943aea88390f3f4d2983f8787e Mon Sep 17 00:00:00 2001 From: xiaoxiamo <82970607@qq.com> Date: Fri, 5 Jul 2024 16:22:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0Redis=E5=81=9A?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E9=98=9F=E5=88=97=EF=BC=88=E4=BA=8C=EF=BC=89?= =?UTF-8?q?=EF=BC=9A=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A=E4=B8=8E=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/receiver/redis/RedisReceiver.java | 16 ++++++++++------ .../support/mq/redis/RedisSendMqServiceImpl.java | 6 +++++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/austin-handler/src/main/java/com/java3y/austin/handler/receiver/redis/RedisReceiver.java b/austin-handler/src/main/java/com/java3y/austin/handler/receiver/redis/RedisReceiver.java index 297a939..83f0ef3 100644 --- a/austin-handler/src/main/java/com/java3y/austin/handler/receiver/redis/RedisReceiver.java +++ b/austin-handler/src/main/java/com/java3y/austin/handler/receiver/redis/RedisReceiver.java @@ -20,10 +20,8 @@ import java.util.concurrent.TimeUnit; import java.util.function.Consumer; /** - * Redis 消息队列实现类 * - * Guava Eventbus 和 Spring EventBus 只适用于单体服务 - * Redis 适合微服务,且无需单独部署三方消息队列,方便开发与简单应用 + * Redis 消息队列实现类 * * @author xiaoxiamao * @date 2024/7/4 @@ -46,8 +44,11 @@ public class RedisReceiver implements MessageReceiver { /** * 消费发送消息 + * + * @Scheduled() 程序异常退出后拉起 + * */ - @Scheduled(fixedDelay = 5000) + @Scheduled(fixedDelay = 1000) public void receiveSendMessage() { receiveMessage(sendTopic, message -> { List taskInfoList = JSON.parseArray(message, TaskInfo.class); @@ -58,7 +59,7 @@ public class RedisReceiver implements MessageReceiver { /** * 消费撤回消息 */ - @Scheduled(fixedDelay = 5000) + @Scheduled(fixedDelay = 1000) public void receiveRecallMessage() { receiveMessage(recallTopic, message -> { RecallTaskInfo recallTaskInfo = JSON.parseObject(message, RecallTaskInfo.class); @@ -69,6 +70,8 @@ public class RedisReceiver implements MessageReceiver { /** * 消息处理方法 * + * 处理责任链有去重处理,此处暂不做 + * * @param topic 消息主题 * @param consumer 消费处理逻辑 */ @@ -78,12 +81,13 @@ public class RedisReceiver implements MessageReceiver { // 阻塞操作,减少CPU,IO消耗 Optional message = Optional.ofNullable( stringRedisTemplate.opsForList().rightPop(topic, 0, TimeUnit.SECONDS)); + log.debug("RedisReceiver#receiveMessage Received message from Redis topic {}: {}", topic, message); if (message.isPresent()) { consumer.accept(message.get()); } } } catch (Exception e) { - log.error("Error receiving messages from Redis topic {}: {}", topic, e); + log.error("RedisReceiver#receiveMessage Error receiving messages from Redis topic {}: {}", topic, e); } } } diff --git a/austin-support/src/main/java/com/java3y/austin/support/mq/redis/RedisSendMqServiceImpl.java b/austin-support/src/main/java/com/java3y/austin/support/mq/redis/RedisSendMqServiceImpl.java index c0ae35c..ca5178a 100644 --- a/austin-support/src/main/java/com/java3y/austin/support/mq/redis/RedisSendMqServiceImpl.java +++ b/austin-support/src/main/java/com/java3y/austin/support/mq/redis/RedisSendMqServiceImpl.java @@ -12,6 +12,9 @@ import org.springframework.stereotype.Service; /** * Redis 消息队列实现类 * + * Guava Eventbus 和 Spring EventBus 只适用于单体服务 + * Redis 适合单体、微服务,且无需单独部署三方消息队列,方便开发与简单应用 + * * @author xiaoxiamao * @date 2024/7/4 */ @@ -39,10 +42,11 @@ public class RedisSendMqServiceImpl implements SendMqService { public void send(String topic, String jsonValue, String tagId) { // 非业务topic,抛错不发送 if (!sendTopic.equals(topic) && !recallTopic.equals(topic)) { - log.error("RedisSendMqServiceImpl#The topic type is not supported! topic:{}, jsonValue:{}, tagId:{}", + log.error("RedisSendMqServiceImpl#send The topic type is not supported! topic:{}, jsonValue:{}, tagId:{}", topic, jsonValue, tagId); return; } + log.debug("RedisSendMqServiceImpl#send topic:{}, jsonValue:{}, tagId:{}", topic, jsonValue, tagId); stringRedisTemplate.opsForList().leftPush(topic, jsonValue); }