scala - 在 Play Framework 2.1 上测试非阻塞 Redis 客户端 (Fyrie) 时出现编译错误

标签 scala playframework redis akka playframework-2.1

当我尝试编译以下代码时

import play.api._
import play.api.mvc._
import scala.collection.mutable.StringBuilder
import net.fyrie.redis.RedisClient
import net.fyrie.redis.RedisClientConfig
//import akka.dispatch._
//import akka.dispatch.Future

object Application extends Controller {

  //  val rd: RedisClient = new RedisClient("localhost", 6379, new RedisClientConfig(1, true, true, 50 to 100))(akka.actor.ActorSystem.create)
  val rd = RedisClient.apply("localhost", 6379, new RedisClientConfig(1, true, true, 50 to 100))(akka.actor.ActorSystem.create)

  def nonblocktest(application: String, platform: String) = Action {
    val future: akka.dispatch.Future[Option[akka.util.ByteString]] = rd.get(StringBuilder.newBuilder.append(application).append('-').append(platform).toString)
    future onSuccess {
      case x => Ok(x.get.toString)
    } onFailure {
      case t: Throwable => Results.NoContent
    }
    Results.NoContent
  }

}

我得到以下错误

sbt.PlayExceptions$CompilationException: Compilation error[package dispatch contains object and package with same name: japi
one of them needs to be removed from classpath]
        at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15$$anonfun$apply$16.apply(PlayReloader.scala:349) ~[na:na]
        at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15$$anonfun$apply$16.apply(PlayReloader.scala:349) ~[na:na]
        at scala.Option.map(Option.scala:133) ~[scala-library.jar:na]
        at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.scala:349) ~[na:na]
        at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.scala:346) ~[na:na]
        at scala.Option.map(Option.scala:133) ~[scala-library.jar:na]

如果我取消注释最后两个导入中的任何一个,我会得到相同的结果。我正在尝试在 play framework 2.1.0 中将 fyrie 用于 scala 2.10.0。我的目标是针对 sedis(阻塞)测试 fyrie 非阻塞异步调用性能。那我做错了什么?我知道这可能是非常(非常)愚蠢的事情。

感谢您的帮助。

最佳答案

您可能应该尝试使用 this fork fyrie redis,因为主要的 repo 似乎已经死了,并且正在使用旧的开发版本的 scala 和 akka。

关于scala - 在 Play Framework 2.1 上测试非阻塞 Redis 客户端 (Fyrie) 时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16144747/

相关文章:

java - 如何为 Play Framework 2.1 设置 JVM 参数 -Xmx

redis - redis中的时间限制列表

php - PHP 中的 Redis : keys "*"

scala - Spark : udf to get dirname from path

scala - 作为执行程序和线程数量的函数,spark中的分区数量是多少?

java - 为什么 Play Framework 不构建在 Servlet API 之上?

node.js - Redis 和 docker-compose 连接 127.0.0.1 :6379

Scala:A 扩展 Ordered[A]

scala - Scala 中的简单税收计算

gwt - GWT和PlayFramework结合使用的策略