2012-05-14 2 views
0

Я обслуживаю двоичные данные из приложения Play 1.2.x. Из-за аппаратных ограничений на клиенте (медленный процессор и небольшой объем оперативной памяти) просто запись кусков по 256 байт одна за другой не сработала. Наивное решение использовать тайм-аут между кусками, как это:Можно ли замедлить чередующийся ответ?

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

Это работает отлично, но, очевидно, это плохая идея, так как мы коробление всего сервера с вызовом, чтобы спать.

Есть ли правильный способ сделать это в Play 1.2.x?

ответ

3

Если ваш код выполняется в контроллере, вы можете использовать функцию wait().

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

Это не будет блокировать основную нитку.

Смежные вопросы