【发布时间】:2018-11-17 07:57:48
【问题描述】:
问题是当我在documentation 之后返回带有许多随机行的分块响应时,并非所有这些行都出现在浏览器(谷歌浏览器、邮递员)中。例如。如果我发送 8192 行,浏览器将只显示 ~7k 甚至 ~4k。我的目标是使用这种方法生成大型 CSV 文件。
public Result test() {
var source = Source.<ByteString>actorRef(256, OverflowStrategy.dropNew())
.mapMaterializedValue(actor -> {
new Thread(new MyRunnable(actor)).start();
return NotUsed.getInstance();
});
return ok().chunked(source);
}
// ------
public class MyRunnable implements Runnable {
private final ActorRef actor;
public MyRunnable(ActorRef actor) {
this.actor = actor;
}
public void run() {
for (var i = 0; i < 1024 * 8; i++) {
var line = String.format("%d some data goes here\n", i + 1);
actor.tell(ByteString.fromString(line), null);
}
actor.tell(new Status.Success(NotUsed.getInstance()), null);
}
}
【问题讨论】:
-
我想缓冲区大小有问题。
标签: java playframework akka playframework-2.6