2

我正在开发一个吞吐量密集型应用程序,并且在尝试识别瓶颈时,我发现将请求正文写入磁盘然后在收到整个请求时将其读回是一个非常缓慢的操作。

我的发送方将在一个 HTTP POST 中向我发送高达 512KB 的数据,并且无法更改,因此我正在寻找在服务器上更好地处理它的方法。在调试器中,我看到 Play 使用 RawBuffer 类来管理传入数据,并且该类具有memoryThreshold字段,当前设置为 100KB。有谁知道以编程方式或通过配置文件将此默认值更改为 512KB 的方法?

更新: 我尝试过但没有成功的事情:

  • 在 application.conf 文件中输入“parsers.text.maxLength=512K”。
  • 只是为了在application.conf中的“parsers.raw.maxLength = 512K”和“parsers.raw.memoryThreshold = 512K”踢和咯咯笑
  • 在我的操作方法中添加“@BodyParser.Of(value = BodyParser.Raw.class, maxLength = 512 * 1024)”注释。
  • 上面所有三个 application.conf 属性名称都使用“512288”而不是“512K”
4

1 回答 1

3

如果我查看我阅读的代码

lazy val DEFAULT_MAX_TEXT_LENGTH: Int = Play.maybeApplication.flatMap { app =>
  app.configuration.getBytes("parsers.text.maxLength").map(_.toInt)
}.getOrElse(1024 * 100)

这让我认为该parsers.text.maxLength物业就是您要寻找的物业。

于 2013-01-02T15:49:59.177 回答