我正在从Play 1.2.x应用程序提供二进制数据。由于客户端的硬件限制(缓慢的处理器和少量的RAM),只是一个接一个地写入256字节的块不起作用。天真的解决方案是在块之间使用超时,如下所示:
while(we have chunks to write) {
response.writeChunk(aChunk);
Thread.sleep(250);
}
这很好用,但显然是一个坏主意,因为我们正在通过呼叫睡眠来占用整个服务器。
在Play 1.2.x中有没有正确的方法?
答案 0 :(得分:3)
如果您的代码在控制器中执行,则可以使用await()函数。
while(we have chunks to write) {
response.writeChunk(aChunk);
await(250);
}
这不会阻止主播放线程。