0

我正在从 Play 1.2.x 应用程序提供二进制数据。由于客户端的硬件限制(较慢的处理器和少量 RAM),仅一个接一个地写入 256 字节的块是行不通的。天真的解决方案是在块之间使用超时,如下所示:

while(we have chunks to write) {
   response.writeChunk(aChunk);
   Thread.sleep(250);
}

这工作正常,但显然是一个坏主意,因为我们通过调用睡眠来占用整个服务器。

在 Play 1.2.x 中有正确的方法吗?

4

1 回答 1

3

如果您的代码在控制器中执行,则可以使用 await() 函数。

while(we have chunks to write) {
   response.writeChunk(aChunk);
   await(250);
}

这不会阻塞主播放线程。

于 2012-05-14T12:43:17.000 回答