您的位置:首页 > 数据库 > Redis

springBoot实现redis 发布式监听消息队列

2020-06-08 16:31 120 查看

springBoot实现redis 发布式监听消息队列

1.定时器监听不同功能的消息

import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.listener.PatternTopic;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
import org.springframework.stereotype.Component;

@Component
public class RedisMessageListener {

private static final String RECEIVE_NAME = "test";

/**
* 监听quest1信息
*/
@Bean
public MessageListenerAdapter quest1() {
return new MessageListenerAdapter(new quest1(), RECEIVE_NAME);
}
/**
* 定义消息监听者容器
* @param connectionFactory 连接工厂
* @param quest1 监听quest1
* @return RedisMessageListenerContainer
*/
@Bean
public RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,
MessageListenerAdapter quest1) {
RedisMessageListenerContainer listenerContainer = new RedisMessageListenerContainer();
listenerContainer.setConnectionFactory(connectionFactory);
listenerContainer.addMessageListener(接收消息--quest1, new PatternTopic("消息key"));
return listenerContainer;
}
}

3.发送消息

RedisTemplate redisTemplate;
redisTemplate.convertAndSend(消息key,JSON.toJSONString("今天比较烦"));

2.接收消息代码

import com.alibaba.fastjson.JSON;

import java.time.LocalDateTime;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class quest1{
public void test(String message) {
Matcher matcher = Pattern.compile("\\{+").matcher(message);
if (matcher.find()) {
message = message.substring(matcher.start(), message.length());
}
处理结果message--
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: