在AWS Worker环境上运行的应用程序中使用TaskExecutor时遇到问题。我正在使用核心大小为15的线程池。TaskExecutor任务是一个REST Web服务调用,通常需要1-3秒钟。如果事务数较少,则taskExecutor内部的任务正在快速启动。但是,如果事务数量更多(少于15个),则任务开始将花费200毫秒或更长时间。
能否请您帮忙找到一些想法,以解决任务执行开始中的延迟。(基本上,我试图尽早开始执行其余服务调用)
@Bean
public TaskExecutor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(15);
executor.setMaxPoolSize(20);
executor.initialize();
return executor;
}
taskExecutor.execute(() -> {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> httpEntity = new HttpEntity<String>(jsonString, headers);
String result = restTemplate.postForObject("URL", httpEntity ,
String.class);
}});