我正在编写Spring (Java 8) web应用程序,对于每个请求(单独的线程),我的应用程序都会执行一些任务,这些任务应该尽快完成,以便在浏览器中将结果返回给客户端,因此我希望找到工作池库,它可以从不同的线程安全地访问。
我读过有关执行池兔子MQ的文章,但是我找不到关于从不同线程访问任务队列的特性的信息。
如果有人能给我建议如何用Java来做这件事,我将非常感激。
发布于 2017-03-15 06:54:17
在这里,您可以通过@Async注释使用Spring支持的异步方法调用。
@Async注释的方法将在新线程中执行,结果将在Future对象中可用(也支持void返回)。请注意,方法调用是非阻塞的,这将有助于快速返回响应,而无需等待每个任务完成。但是,如果需要,可以使主线程等待所有任务,即Future通过阻塞的Future.get()完成。
要配置异步支持,请用@EnableAsync注释配置类,并提供下面描述的这里方法定义。
public Executor getAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(2);
executor.setMaxPoolSize(2);
executor.setQueueCapacity(500);
executor.initialize();
return executor;
}https://stackoverflow.com/questions/42784988
复制相似问题