從this doc我瞭解到,現在我們可以從任何操作方法返回Callable<T>
。彈簧將在TaskExecutor
的幫助下,在單獨的線程中執行此操作。 This blog只是說這個TaskExecutor
是可配置的。但我沒有找到在spring引導應用程序中配置這個TaskExecutor
的方法。誰能幫我?Spring Boot異步請求處理任務執行程序配置
我的另一個問題是我應該擔心這個TaskExecutor
的配置,如線程池大小,隊列大小等?
由於pkoli
問,這裏是我的主類
@SpringBootApplication
public class MyWebApiApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(MyWebApiApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyWebApiApplication.class);
}
@Bean
public Executor asyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(10);
executor.setQueueCapacity(100);
executor.setThreadNamePrefix("MyThread-");
executor.initialize();
return executor;
}
}
您好,我想這一點,但是這是行不通的。 Spring引導使用另一個執行程序,其線程前綴名稱爲:「MvcAsync1」。我還需要做其他什麼嗎? –
你可以在這裏分享你的配置,這將有助於回答這個問題。看來由Spring提供的默認Task Executor正在被使用,因此線程的前綴爲MvcAsync1。 – pkoli
嘿,我沒有使用任務執行器的任何配置。實際上我的application.properties中沒有任何內容。我只是複製您的代碼並將其粘貼到我的主類中 –