В моем приложении используется среда воспроизведения для обработки запросов REST. Мне нужно выполнить некоторые потенциально длительные операции блокировки ввода-вывода в обработчике запросов HTTP. Параллельно я хотел бы эффективно обрабатывать короткие запросы.
Как описано здесь:
http://www.playframework.com/documentation/2.2.0/JavaAsync
длительная операция может выполняться асинхронно. С другой стороны, как описано здесь:
http://www.playframework.com/documentation/2.2.x/ThreadPools
Play Framework использует тот же пул потоков по умолчанию, в котором выполняется весь код приложения. По крайней мере, в Java api нет возможности запуска асинхронной работы в разных пулах потоков.
Итак, мой вопрос в том, стоит ли асинхронно запускать потенциально блокирующую операцию ввода-вывода, учитывая тот факт, что такая операция использует один и тот же пул потоков. Или, может быть, лучше увеличить размер пула потоков по умолчанию и не беспокоиться о async api в таком случае? (таким образом, хотя бы читаемость кода была бы намного выше)