在游戏框架2.1测试时,编译错误非阻塞Redis的客户端(Fyrie)(Compilation er

2019-10-18 01:16发布

当我尝试编译下面的代码

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]

我得到同样的,如果我去掉任何最后两个进口。 我想在游戏框架2.1.0使用fyrie斯卡拉2.10.0。 我的目标是测试fyrie非阻塞异步调用针对SEDIS(阻塞)的演出。 所以我在做什么错? 我知道我自己也可能是一件很(非常)哑。

谢谢你的帮助。

Answer 1:

你或许应该尝试使用这个叉子 fyrie Redis的,因为主要的回购似乎是死的,并使用Scala和阿卡老版本的开发。



文章来源: Compilation error when testing non blocking Redis client (Fyrie) on Play Framework 2.1