我在play.mvc.Results.Chunks.Out.write(...)
内定期调用onReady
,对大型数据集进行迭代。
因为写入发生的速度比发送到客户端的数据要快,所以我经常会在一段时间后耗尽内存......那么这样做的正确方法是什么?
答案 0 :(得分:3)
不幸的是,这是Play中Play的Java API的限制。 Java API无法从客户端获得背压,因此很容易使客户端瘫痪。当我们为Java客户端提供更好的流API时,可能会在Play 3中修复此问题,可能基于Akka Streams。
如果你真的需要解决这个问题,那么你可以在Scala中根据Play的枚举器编写一个小程序,然后将其包装起来,这样你就可以从Java程序中访问它。