2012-05-14 60 views
0

我正在從Play 1.2.x應用程序提供二進制數據。由於客戶端的硬件限制(處理器速度慢,內存量小),僅僅寫入256字節的數據塊就無法工作。天真的解決方案是使用的塊之間超時這樣的:是否可以減慢分塊響應?

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

這工作得很好,但顯然是因爲我們佔用與呼叫睡覺整個服務器是一個壞主意。

在Play 1.2.x中有這樣做的正確方法嗎?

回答

3

如果您的代碼在控制器中執行,則可以使用await()函數。

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

這不會阻塞主要的播放線程。