Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Slick 3 MySQL流媒体应用程序刚刚挂起。。。(不传输数据)_Scala_Slick_Akka Stream - Fatal编程技术网

Scala Slick 3 MySQL流媒体应用程序刚刚挂起。。。(不传输数据)

Scala Slick 3 MySQL流媒体应用程序刚刚挂起。。。(不传输数据),scala,slick,akka-stream,Scala,Slick,Akka Stream,库依赖项 val enableJdbcStreaming: (java.sql.Statement) => Unit = { statement ⇒ if (statement.isWrapperFor(classOf[com.mysql.jdbc.StatementImpl])) { statement.unwrap(classOf[com.mysql.jdbc.StatementImpl]).enableStreamingResults() } } impli

库依赖项

val enableJdbcStreaming: (java.sql.Statement) => Unit = { statement ⇒
  if (statement.isWrapperFor(classOf[com.mysql.jdbc.StatementImpl])) {
        statement.unwrap(classOf[com.mysql.jdbc.StatementImpl]).enableStreamingResults()
  }
}

implicit val actorSystem = ActorSystem()
implicit val actorMaterializer = ActorMaterializer()
val config = ConfigFactory.load()
val db = Database.forConfig("mysql")
val query = Tables.Foo.map(r => (r.id, r.pid)).result
val source = Source.fromPublisher[(Long, Option[Long])](db.stream(query.withStatementParameters(statementInit = enableJdbcStreaming)))
val future = source.runForEach(x => println(x))
import actorSystem.distpatcher
future.onComplete{ _ => 
  db.close()
  actorSystem.terminate()
}
Await.result(future, Duration.Inf)
Await.result(actorsystem.whenTerminated, Duration.Inf) 
mysql配置

"com.lightbend.akka" %% "akka-stream-alpakka-cassandra" % "0.11",
"com.typesafe.slick" %% "slick" % "3.2.1",
"com.typesafe.slick" %% "slick-hikaricp" % "3.2.1",
"mysql" % "mysql-connector-java" % "5.1.44",
"ch.qos.logback" % "logback-classic" % "1.2.3"
当我运行此代码时。它只是一直在控制台上打印这些行

mysql {
  profile = "slick.jdbc.MySQLProfile$"
  dataSourceClass = "slick.jdbc.DatabaseUrlDataSource"
  properties {
    driver = "com.mysql.jdbc.Driver"
    url  = "jdbc:mysql://server:3306/db"
    user = "user"
    password = "password"
  }
  connectionTimeout = 300
}
我等了很长时间,但它一直在打印这些行


我的期望是,它会立即开始为我逐行读取表格。

我自己解决了这个问题。我想我没有正确地构建图表

我用RunnableGraph重写了我的图表。现在它工作得很好

[info] 19:20:31.647 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:21:01.649 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:21:31.656 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:22:01.661 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:22:31.668 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:23:01.674 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:23:31.680 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:24:01.687 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:24:31.693 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:25:01.699 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:25:31.706 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:26:01.708 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)

尽管知道前一种方法为什么不起作用会很有趣。

我自己解决了这个问题。我想我没有正确地构建图表

我用RunnableGraph重写了我的图表。现在它工作得很好

[info] 19:20:31.647 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:21:01.649 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:21:31.656 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:22:01.661 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:22:31.668 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:23:01.674 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:23:31.680 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:24:01.687 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:24:31.693 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:25:01.699 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:25:31.706 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
[info] 19:26:01.708 [mysql housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - mysql - Pool stats (total=21, active=1, idle=20, waiting=0)
尽管了解前一种方法为什么不起作用会很有趣