优化 Redis pub/sub 的封装,提升使用的便利性

This commit is contained in:
YunaiV
2021-01-22 21:50:23 +08:00
parent 2a349972b4
commit c10ab1753a
4 changed files with 83 additions and 17 deletions

View File

@ -2,15 +2,23 @@ package cn.iocoder.dashboard.modules.system.mq.consumer;
import cn.iocoder.dashboard.framework.redis.core.listener.AbstractMessageListener;
import cn.iocoder.dashboard.modules.system.mq.message.permission.SysMenuRefreshMessage;
import org.springframework.data.redis.connection.Message;
import cn.iocoder.dashboard.modules.system.service.permission.SysMenuService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component
public class SysMenuRefreshConsumer extends AbstractMessageListener {
@Slf4j
public class SysMenuRefreshConsumer extends AbstractMessageListener<SysMenuRefreshMessage> {
@Resource
private SysMenuService menuService;
@Override
public void onMessage(Message message, byte[] bytes) {
System.out.println(message);
public void onMessage(SysMenuRefreshMessage message) {
log.info("[onMessage][收到 Menu 刷新消息]");
menuService.init();
}
@Override

View File

@ -1,7 +1,8 @@
package cn.iocoder.dashboard.modules.system.mq.producer.permission;
import cn.iocoder.dashboard.modules.system.mq.message.permission.SysMenuRefreshMessage;
import org.springframework.data.redis.core.RedisTemplate;
import cn.iocoder.dashboard.util.json.JSONUtils;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@ -13,14 +14,14 @@ import javax.annotation.Resource;
public class SysMenuProducer {
@Resource
private RedisTemplate<String, Object> redisTemplate;
private StringRedisTemplate stringRedisTemplate;
/**
* 发送 {@link SysMenuRefreshMessage} 消息
*/
public void sendMenuRefreshMessage() {
SysMenuRefreshMessage message = new SysMenuRefreshMessage();
redisTemplate.convertAndSend(SysMenuRefreshMessage.TOPIC, message);
stringRedisTemplate.convertAndSend(SysMenuRefreshMessage.TOPIC, JSONUtils.toJSONString(message));
}
}