gpt4 book ai didi

java - 如何使用不同的接收器创建多个 channel ? Spring Redis 发布/订阅

转载 作者:IT王子 更新时间:2023-10-29 06:11:46 26 4
gpt4 key购买 nike

我正在通过 Spring Data 使用 Redis 发布订阅,但我在添加超过 1 个 channel 时遇到问题。

目前,我正在关注典型示例,其中 MessageListenerContainer 通过添加关联了 Receiver 类的 MessageListenerAdapter 进行配置,如下所示:

enter image description here

以前的工作完美,我能够推送和接收消息。但是,我尝试添加第二个监听器适配器以创建“具有不同接收器的 channel ,并且我收到 NullPointerException。

enter image description here

错误附在下面。添加新适配器有不同的方法吗?一般来说,我想动态添加 channel 。

通过在 addMessageListener 方法中提供 PatternTopic 列表,可以添加与一个特定接收器关联的多个 channel 。

谢谢你的帮助

enter image description here

最佳答案

我认为在添加 MessageListenerAdapter 时 Spring Redis 存在一个重要的错误。

如果 Receiver 类没有从 MessageListener 扩展(因此,实现了 onMessage),MessageListenerAdapter 类的内部方法 MethodInvoker() 特别询问 Receiver 是否是MessageListener(见下图最后一行)。

enter image description here

要解决这个问题,只需从 MessageListener 扩展,然后您可以直接添加额外的适配器。

很遗憾 spring-data-redis 团队没有在他们的 github 页面中启用问题来发布这个错误。 https://github.com/spring-projects/spring-data-redis

关于java - 如何使用不同的接收器创建多个 channel ? Spring Redis 发布/订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26300266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com