scala - Scala Redis 中的 PubSub

标签 scala redis

我是 Scala 和 Redis 世界的新手,我正在尝试做一些简单的事情:

我想订阅一个 channel 以便在添加新 key 时收到通知(我的想法只是设置 key 并在添加 key 的 channel 中发布)。

当我在网站上阅读时,scala-redis是推荐版本中最新的,所以我决定使用它。

我在订阅部分遇到了一些问题。我有以下代码:

import com.redis._
val r = new RedisClient("localhost", 6379)
r.subscribe("modifications","modifications","subscribe")

我收到以下错误消息:

error: missing arguments for method subscribe in trait PubSub; follow this method with `_' if you want to treat it as a partially applied function

我正在查看文档,函数如下所示:

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
    }
  }

老实说,我不知道我做错了什么。如果有人可以帮助我提出一些想法,那就太好了。

谢谢

最佳答案

你需要提供一个函数来处理接收到的消息:

r.subscribe("modifications","modifications","subscribe"){ m => println(m) }

不幸的是,大部分文档都在代码中,但如果您查看 PubSubDemo 可能会有所帮助或 PubSubSpec .

关于scala - Scala Redis 中的 PubSub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42848537/

相关文章:

azure - Redis 锁应该在单独的实例上运行吗?

caching - cachemanager.net - 如何根据传递的键从 Redis 缓存中获取对象列表?

arrays - Scala 二维数组按主列和辅助列排序

java - 如何重定向到在 play 框架中有 post 方法的 Action

Scala - 使用方法创建用户类型

scala - 如何在 Play Framework 关闭期间等待 Actor 停止?

按计数对字符串进行排序的 Redis 建模

django - 在 Celery 中检索任务的结果

php - 如何反序列化来自 Redis 的 PHP session ?

scala - 覆盖子类中的字段