我的应用程序使用Play框架来处理REST请求。我需要在HTTP请求处理程序中执行一些可能持续很长时间的阻塞I/O操作。同时,我希望能够有效地处理某些持续时间短暂的请求。
如此处所述:
http://www.playframework.com/documentation/2.2.0/JavaAsync
可以异步运行长时间的操作。另一方面,如此处所述:
http://www.playframework.com/documentation/2.2.x/ThreadPools
Play框架使用相同的默认线程池,在其中执行所有应用程序代码。至少在Java API中,没有可能在不同的线程池上运行异步工作。
因此,我的问题是,考虑到这样一个操作仍然使用相同的线程池,异步运行潜在的阻塞 I/O 操作是否值得。或者,增加默认线程池的大小,对于这种情况不必使用异步API是否更好?(这样代码的可读性将会大大提高)