首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Scala框架2加载大型JSON文件时出错

使用Scala框架2加载大型JSON文件时出错
EN

Stack Overflow用户
提问于 2014-11-07 18:50:39
回答 1查看 620关注 0票数 2

我正在尝试使用Apache来加载一组大型(每个4MB) JSON请求。当使用大型文件和许多并发请求运行时,我会得到以下错误:

RequestBodyHandler java.nio.channels.ClosedChannelException中捕获的异常: null

这是我的ab命令:

代码语言:javascript
复制
ab -p large.json -n 1000 -c 10 http://127.0.0.1:9000/json-tests

如果我在没有并发性的情况下运行它,并且只有10个请求,那么它可以正常工作。增加请求或并发的数量会导致此错误一次又一次地发生。

我的控制器目前没有逻辑:

代码语言:javascript
复制
def addJsonTest = Action {
  Ok("OK")
}

以下是完整的错误:

错误播放-在org.jboss.netty.channel.socket.nio.AbstractNioWorker.setInterestOps(AbstractNioWorker.java:506) netty处捕获RequestBodyHandler java.nio.channels.ClosedChannelException: null -3.9.3.Final.jar:na at org.jboss.netty.channel.socket.nio.AbstractNioWorker$1.run(AbstractNioWorker.java:455) netty-3.9.3.Final.jar:na at org.jboss.netty.channel.socket.ChannelRunnableWrapper.run(ChannelRunnableWrapper.java:40) nettyorg.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:372) netty-3.9.3.Final.jar:na at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:296) netty-3.9.3.Final.jar:na

这只是在开发模式中使用Play,是否有任何设置或配置来让Play处理多个大型请求?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-08 10:31:39

您需要使用迭代器来反作用地执行此操作。

代码语言:javascript
复制
  val iteratee = Iteratee.foldM[Array[Byte], Either[Result, String]](Right("start")) { case (str, bytes) =>
      Future.successful(Left(Ok))
  }

  val parser = BodyParser(rh => iteratee)


  def eatDust = Action(parser) { req =>
    Ok
  }

看看这些链接。

https://www.playframework.com/documentation/2.2.x/Iteratees

Play 2.x : Reactive file upload with Iteratees

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26808067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档