Scala Redis 中的 PubSub
Posted
技术标签:
【中文标题】Scala Redis 中的 PubSub【英文标题】:PubSub in Scala Redis 【发布时间】:2017-03-17 03:09:50 【问题描述】:我是 Scala 和 Redis 世界的新手,我正在尝试做一些简单的事情:
我想订阅一个频道,以便在添加新密钥时收到通知(我的想法只是设置密钥并在添加了密钥的频道中发布)。
当我在网站上阅读时,scala-redis 是推荐版本中最新的,所以我决定使用它。
我在订阅部分遇到了一些问题。我有以下代码:
import com.redis._
val r = new RedisClient("localhost", 6379)
r.subscribe("modifications","modifications","subscribe")
我收到以下错误消息:
错误:特征 PubSub 中的方法订阅缺少参数;跟随 如果您想将其视为部分应用,则此方法带有 `_' 功能
我正在检查文档,函数如下所示:
def subscribe(channel: String, channels: String*)(fn: PubSubMessage => Any)
if (pubSub == true) // already pubsub ing
subscribeRaw(channel, channels: _*)
else
pubSub = true
subscribeRaw(channel, channels: _*)
new Consumer(fn).start
说实话,我不知道自己做错了什么。如果有人可以帮助我提出一些想法,那就太好了。
谢谢
【问题讨论】:
【参考方案1】:你需要提供一个函数来处理接收到的消息:
r.subscribe("modifications","modifications","subscribe") m => println(m)
不幸的是,大部分文档都在代码中,但如果您查看 PubSubDemo 或 PubSubSpec 可能会有所帮助。
【讨论】:
这个api的文档确实很差。谢谢。以上是关于Scala Redis 中的 PubSub的主要内容,如果未能解决你的问题,请参考以下文章
Redis golang 客户端定期丢弃错误的 PubSub 连接 (EOF)
Google PubSub 中的 PubSub.Subscriptions() 和 Topic.getSubscriptions() 有啥区别?